新手关于字符数组的小疑点
新手求教:关于字符数组的小问题
#include<stdio.h>
#include<string.h>
void main(){
char s1[]="aaa",s2[]="bbb",s3[]="ccc";
strcat(s1,strcat(s2,s3));
puts(s1);
printf("\n");
puts(s2);
printf("\n");
puts(s3);
}
执行之后为什么s2和s3的数值发生变化。
------解决方案--------------------
strcat(s1,strcat(s2,s3));
s2没有足够的空间来容纳s3
这个时候程序会崩溃
------解决方案--------------------
strcat函数是向一个字符串后追加字符,字符数组s1、s2、s3的长度都为4(包括结束符),追加字符时会越界,程序崩溃,换成strcpy就没问题
------解决方案--------------------
楼上正解
------解决方案--------------------
2楼貌似正解。
------解决方案--------------------
LS正解!
#include<stdio.h>
#include<string.h>
void main(){
char s1[]="aaa",s2[]="bbb",s3[]="ccc";
strcat(s1,strcat(s2,s3));
puts(s1);
printf("\n");
puts(s2);
printf("\n");
puts(s3);
}
执行之后为什么s2和s3的数值发生变化。
------解决方案--------------------
strcat(s1,strcat(s2,s3));
s2没有足够的空间来容纳s3
这个时候程序会崩溃
------解决方案--------------------
strcat函数是向一个字符串后追加字符,字符数组s1、s2、s3的长度都为4(包括结束符),追加字符时会越界,程序崩溃,换成strcpy就没问题
------解决方案--------------------
楼上正解
------解决方案--------------------
2楼貌似正解。
------解决方案--------------------
LS正解!