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

求解,为什么字符串变量s1不能被赋值?

https://img1.sycdn.imooc.com//5c66d1ec0001c7e319201080.jpg不太理解为什么。

正在回答

1 回答

你的代码存在两个漏洞:

首先,c语言中字符串不能用等号赋值,需要用strcpy;

其次,strcat需要第一个参数有足够的空间,不然会导致内存溢出(s2的空间正好只能放下“我爱,”加一个‘\n’字符,具体占几个字节视编译器的编码而定,反正是没有多余的空间的)。

正确代码(不唯一):

#include<stdio.h>
#include<string.h>

int main(){
    char s1[100]="";
    char s2[]="我爱,";
    char s3[]="慕课网";
    strcat(s1, s2);
    strcat(s1, s3);
    printf("%s\n",s1);
    return 0;
}


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

举报

0/150
提交
取消

求解,为什么字符串变量s1不能被赋值?

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