字符串处理函数strcpy和strcat注意的问题:
测试代码优先:
#include <stdio.h>
#include <string.h>
int main(int argc ,char **argv )
{
char a[10] = "abc" ,b[10] = "012",c[10] = "xyz";
strcpy( a+1,b+2 );
printf("%s\n",a);
strcat( a,c+1 );
printf("%s\n",a);
printf("%s\n",b);
printf("%s\n",c);
strcat( a,c+1 );
printf("%s\n",a);
return 0;
}
代码下载:
https://gitee.com/yanyanhuan/C_git/blob/master/str-1.c
char *strcpy(char *dest, const char *src);
strcpy是字符串复制函数,把src复制到dest位置上
char *strcat(char *dest, const char *src);
strcat是字符串连接函数,把src追加到dest后面
我以前是这两个函数的,但是涉及到换成指针操作,便想错了。
现在看下运行:

strcpy函数把src(src的开始位置直到\0)复制到dest的位置上,并且把\0也复制上去。
于是在字符串结尾也是以\0结束的。
strcat函数把src追加的dest后面。开始有疑惑的地方是dest是以\0结尾了,如果追加不就是两个\0,遇到\0便结束吗?
但是并不是这样strcat函数自动把dest的\0消去了,而覆盖在原来的位置。(其实想想如果不去掉\0那这个函数便没有实际价值了)。