求解,为什么字符串变量s1不能被赋值?
不太理解为什么。
不太理解为什么。
2019-02-15
你的代码存在两个漏洞:
首先,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; }
举报