❶ (c語言)指針習題:編寫字元串連接函數strcat()
#include <stdio.h>
void strcat(char *d,const char *s)
{
int i;
for(i=0;d[i];i++);
for(;d[i++]=*s++;);
}
int main()
{
char d[128],s[128];
scanf("%s %s",d,s);
strcat(d,s);
puts(d);
return 0;
}
❷ C語言 編寫函數strcat(char *str1,char *str2,char *str3)
其中,strcat函數原型如下:
char *strcat(char *strDest, const char *strSrc)
{ char *address = strDest; //該語句若放在assert之後,編譯出錯
assert((strDest != NULL) && (strSrc != NULL)); //對源地址和目的地址加非0斷言
while(*strDest) //是while(*strDest!=』\0』)的簡化形式
{
strDest++;
} //這個循環的目的是讓指針strDest指向其字元串的最後一位'\0'
while(*strDest++ = *strSrc++)
{
NULL;
} //這個循環是將字元串strSrc加到strDest的後面
return address; //為了實現鏈式操作,將目的地址返回
}
你給的函數返回類型是void,把最後的return行刪去就行了
❸ C語言strcat
編輯本段C函數
原型
extern char *strcat(char *dest,char *src);
用法
#include <string.h> 在C++中,則存在於<cstring>頭文件中。
功能
把src所指字元串添加到dest結尾處(覆蓋dest結尾處的'\0')並添加'\0'。
說明
src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字元串。 返回指向dest的指針。
舉例
// strcat.c #include <syslib.h> #include <string.h> main() { char d[20]="Golden Global"; char *s=" View"; clrscr(); strcat(d,s); printf("%s",d); getchar(); return 0; } 程序執行結果為: Golden Global View Strcat函數原型如下: char *strcat(char *strDest, const char *strSrc) //將源字元串加const,表明其為輸入參數 { char *address = strDest; //該語句若放在assert之後,編譯出錯 assert((strDest != NULL) && (strSrc != NULL)); //對源地址和目的地址加非0斷言 while(*strDest) //是while(*strDest!=』\0』)的簡化形式 { //若使用while(*strDest++),則會出錯,因為++是不受循環 strDest++; //約束的。所以要在循環體內++;因為要是*strDest最後指 } //向該字元串的結束標志』\0』。 while(*strDest++ = *strSrc++) { NULL; //該循環條件內可以用++, } //此處可以加語句*strDest=』\0』;無必要 return address; //為了實現鏈式操作,將目的地址返回 }
編輯本段MATLAB函數
定義
strcat 即 Strings Catenate,橫向連接字元串。
語法
combinedStr = strcat(s1, s2, ..., sN)
描述
將數組 s1,s2,...,sN 水平地連接成單個字元串,並保存於變數 combinedStr 中。如果任一參數是元胞數組,那麼結果 combinedStr 是一個元胞數組,否則,combinedStr 是一個字元數組。
實例
>> a = 'Hello' a = Hello >> b = ' Matlab' b = Matlab >> c = strcat(a,b) c = Hello Matlab
❹ C語言用指針編程實現strcat函數的功能
#include<stdio.h>
#include<assert.h>
void my_strcat( char *arr1,const char *arr2)
{
char* ret=arr1;
const char* dst=arr2;
assert(arr1);
assert(arr2);
while(*ret)00
{//將指針所指目標轉移到未賦值的字元位置
ret++;
}
while(*dst)
{
*ret = *dst;
dst++;
ret++;
}
*ret=*dst; //將' '拷貝到arr1中
printf("%s ",arr1);
}
int main()
{
char arr1[32]="I am a ";
const char arr2[]="good student!";
my_strcat(arr1,arr2);
return 0;
}
運行效果:
(4)c語言strcat函數實現擴展閱讀:
其它方法:
#include<stdio.h>
#include<string.h>
#include<assert.h>
void my_strcat( char* arr1, const char* arr2,int n)
{
char* p = arr1;
char* q =(char *)arr2;
assert(arr1);
assert(arr2);
p = p + n;
while( *q!= '