strcat:函数原型:char *strcat(char *dest,const char *src)
两个形参,把src指向的字符串包括('\0')复制到dest指向的字符串后面(删除*dest原来末尾的'\0'),要保证*dest足够长以容纳被复制的进来的*src,*src中原有的字符不变,返回*dest的指针。
用strcat拼接:
#include <stdio.h>
#include <string.h>
int main(){
char str[128]="hello";
char *p = " ,world";
strcat(str,p);
puts(str);
return 0;
}
也能用指针承接返回值输出:
char *p2 = strcat(str,p);
puts(p2);
输出结果:
hello ,world
自己用函数实现:
标准Lunix C函数库
char *myStrcat(char *des,char *src){
char *bak = des;
while(*des != '\0'){
des++;
}
while((*des++= *src++) !='\0');
*des = '\0' ;
return bak;
char *p3 =myStrcat(str,p);
puts(p3);
GUN C耍流氓写法:
char *myStrcat2(char *des,char *src){
char *bak = des;
strcpy(des+strlen(des),src); //偏移有效长度,进行字符拷贝
return bak;
OpenBSD for循环:
char *myStrcat3(char *des,char *src){
assert(des !=NULL && src != NULL);
char *bak =des;
for(;*des!='\0' ;src++); //for循环偏移有效长度
while((*des++ = *src++) != '\0');
*des = '\0';
return bak;
}