C语言基础语法第七章字符串 demo8_strcat字符串拼接函数自己实现
字符串拼接函数 strcat
函数原型:charstrcat(chardest,const charsrc);
把src所指向的字符串(包括“\0”)复制到dest所指向的字符串后面(删除dest原来末尾的“\0”)。
要保证dest足够长,以容纳被复制进来的src。*src中原有的字符不变。返回指向dest的指针。
代码示例:
#include <stdio.h>
#include <string.h>
#include <assert.h>
char *Mystrcat(char* des,char* src)
{
if (des==NULL || src == NULL){
return NULL;
}
//或者使用assert
assert(des != NULL && src != NULL);
char* bar = des;
while(*des != '\0'){//Linux下标准C写法可以不写!='\0' 因为While本身对'\0'就不成立 while(*des) des++
des ++;
}
while((*des++=*src++)!='\0')
{
//des++;也可以这样写
//src++;
}
*des = '\0';
return bar;
}
//第二种写法
/*
char* Mystrcat(char*des,char*src)
{
assert(des!=NULL,src!=NULL);
char* bar= des;
strcpy(des+strlen(des),src);
}
*/
int main()
{
char str[128]="longhaiyang";
char *p = "hand some";
char*p2;
//p2 = strcat(str,p);//字符串拼接函数 strcat
//函数原型:char*strcat(char*dest,const char*src);
//把src所指向的字符串(包括“\0”)复制到dest所指向的字符串后面(删除*dest原来末尾的“\0”)。
//要保证*dest足够长,以容纳被复制进来的*src。*src中原有的字符不变。返回指向dest的指针。
p2=Mystrcat(str,p);//自己实现strcat函数
puts(p2);
printf("%s\n",p2);
return 0;
}