为啥先strcat(s2,s3);再strcpy(s1,s2);会报错?

来源:6-8 字符串函数

芥末菌的忧伤

2015-03-03 12:30

如题,不太懂

写回答 关注

2回答

  • onemoo
    2015-03-03 17:43:58

    s1是一个长度为100的字符数组。

    s2是一个长度为4的字符数组。

    s3是一个长度为4的字符数组。

    strcat(s2, s3) 这个函数是将s3中的内容(包括s3结尾的'\0')复制到s2中最后一个字符的后面(覆盖掉s2原来结尾的'\0'),这样就能把两个字符串中的字符连起来了,并且还是'\0'结尾。

    但这需要s2有足够的长度来容纳这么多的字符,长度至少为 strlen(s2) + strlen(s3) + 1,最后这个1就是结尾的'\0'。否则就会写越界。

    花花丹

    原来是酱紫,谢谢><

    2015-03-30 10:29:51

    共 1 条回复 >

  • 小精灵的伙伴
    2015-03-03 13:56:45

    你好,这是因为字符数组s2的长度只能容纳"我爱,"这几个字符和'\0',无法z再把数组s3接上去

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926210 学习 · 20797 问题

查看课程

相似问题