strcat函数:
char *strcat*(char *d,const char *s)
将s串复制到d串结尾(覆盖d的'\0'),并在新串后加'\0'.当然,d串要有足够的空间容得下s串的内容.
char *my_strcat(char *d,const char *s){ char *str_dest=d; while(*d!='\0') d++; while((*d++=*s++)!='\0'); return str_dest; }
1.第一行为了保存d的地址,返回str_dest也是为了链式表达式.
2.while((*d++=*s++)!='\0')是将s串复制到d的结尾,并且s中的'\0'也复制过去了.经典的源码写法是:
while(*d++=*s++);//同样可以达到目的
3.这个函数的前提是d串要有足够的空间容得下s串.所以如果这样使用函数将会犯错.
char *d="I am Brillliu"; char *s="I am a student"; printf("%s",my_strcat(d,s));
这里d串的长度很显然容不下了s串.所以使用这个函数的时候我们都应该尽量将目标串的空间申请的大一点,这样才足够的安全.
char d[30]="I am Brillliu";