strcat函数: char *strcat(char *dest, const char *src)
作用:将src指向的字符串拼接到dest指向的字符串中去
代码如下:
#include<stdio.h>
#include<string.h>
#include<assert.h>
char *myStrcat(char *dest,char *src)
{
char *back=dest;
assert(dest!=NULL&&src!=NULL);
while(*dest!='\0')//先将指针dest偏移到要剪进去的目标字符串的末尾
{
dest++;
}
while(*src!='\0')//将源字符串拼接到目标字符串的后边
{
*dest++=*src++;
}
*dest='\0';
return back;
}
char *myStrcat2(char *dest,char *src)
{
char *back;
strcpy(dest+strlen(dest),src);//利用strcpy函数,先将目标字符串的大小用strlen函数
//求出目标字符串dest的长度,然后偏移它的长度,在其长度之后
//将源字符串src拷贝在其之后
return back;
}
char *myStrcat3(char *dest,char *src)
{
char *back=dest;
assert(dest!=NULL&&src!=NULL);
for(;*dest!='\0';dest++);//先将指针dest偏移到要剪进去的目标字符串的末尾
while(*src!='\0')//将源字符串拼接到目标字符串的后边
{
*dest++=*src++;
}
*dest='\0';
return back;
}
int main()
{
char str[128]=“xiefangjing”;
char *p=" handsome";
//strcat(str,p);
//myStrcat(str,p);
myStrcat2(str,p);
//myStrcat3(str,p);
puts(str);
return 0;
}
运行结果
用mystrcat函数实现了字符串"xiefangjing"和" handsome"的拼接
结合注释自己理解一下函数逻辑