C语言同时输入两个越界的字符串,得到了一个输出
#include<stdio.h>
int main()
{
char s1[8];
char s2[8];
scanf("%s",s1);
scanf("%s",s2);
printf("%s##%s##",s1,s2);
return 0;
}
运行结果
请问这个原因是什么
听说和排列有关系,但实在不明白怎样排可以得到这个输出
#include<stdio.h>
int main()
{
char s1[8];
char s2[8];
scanf("%s",s1);
scanf("%s",s2);
printf("%s##%s##",s1,s2);
return 0;
}
听说和排列有关系,但实在不明白怎样排可以得到这个输出
你输入的串太长了。
你输入了8个字符,但数组也只有8个字符,导致字符串没有结束符。用%s是输出字符串
数组改大一点就好了,比如char s1[20]