#include<stdio.h>
#include<string.h>
int main()
{
char a[10]="1234";
gets(a);
strcat(a,"678");
printf("%s\n,a");
return 0;
}
char a[10]="1234";
gets(a);
strcat(a,"678");
printf("%s\n",a);
===============
因为你输入的是XYZ,会覆盖a数组初始化的1234。其中XYZ覆盖123,字符串结束符'\0'覆盖4
然后strcat实现将"678"字符串连接到a字符串尾部,因此最后输出的a字符串内容为XYZ678
printf("%s\n,a");这一句,你写错了,应该是
printf("%s\n",a);
gets(a);这里需要你输入一个字符串,strcat(a,"678");这一句把678拼接到你输入的字符串后面。
注意输入的字符串长度不能过长,否则会出现输出错误。因为a只有10个字符大小,678占3个,还需要给'\0'预留1个位置,所以你输入的字符串长度最大是6,超过6以后,使用%s输出的时候,可能会出现非预期的字符串,因为使用%s输出的时候,直到遇到'\0'才会结束输出,如果超长,就无法给'\0'预留位置。
a放引号外面
#include<stdio.h>
#include<string.h>
int main()
{
char a[10]="1234";
gets(a);
strcat(a,"678");
printf("%s\n",a);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!