颜言研的博客

请指教

字符串处理函数strcpy和strcat

字符串处理函数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那这个函数便没有实际价值了)。





阅读更多
文章标签: C
个人分类: C语言
上一篇char a[]=&quot;xyz&quot;,b[]={'x','y','z'};strlen和sizeof
下一篇修改代码应该上传git的东西---patch
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭