为了账号安全,请及时绑定邮箱和手机立即绑定

请问大神这个解答可以吗?

#include <stdio.h>

#include <string.h>

int main()

{

    char s1[100]="";

    char s2[]="我爱,";

    char s3[]="慕课网";

    /*在以下补全代码*/

    strcat(s2,s3);

    strcpy(s1,s2);

    

   

    

    

    printf("%s\n",s1);

    return 0;    

}


正在回答

4 回答

这个写法不行吧。

0 回复 有任何疑惑可以回复我~
#1

慕妹3401294 提问者

非常感谢!
2018-05-23 回复 有任何疑惑可以回复我~

这道题可以,但理论上是不行,strcat在使用时s2与s3指的内存空间不能重叠,且s2要有足够的空间来容纳要复制的字符串,你把s2[]="我爱,"改成s2[2]="我爱,"就知道了,内存空间太小不行

0 回复 有任何疑惑可以回复我~

一派胡言,怎么不行?s1是空串!

0 回复 有任何疑惑可以回复我~

不行,原因是cpy会覆盖原来的字符串内容。cat是复制第二个参数的字符串内容到第一个参数去

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926257    人
  • 解答问题       20798    个

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

进入课程

请问大神这个解答可以吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信