诛仙天罡3代技能:请教这个C程序的运行结果怎么解释

来源:百度文库 编辑:高校问答 时间:2024/04/29 00:05:10
#include "string.h"
main()
{char s1[6],s2[6],s3[6],s4[6];
scanf("%s%s",s1,s2);
gets(s3);
gets(s4);
puts(s1);puts(s2);puts(s3);puts(s4);
printf("%d",strlen(s4));printf("%3d",sizeof(s4));
}
输入结果是:
aaa
bbb

ccc ddd
7 6
输入:
aaa bbb<CR>
ccc ddd<CR>
输出:
aaa
bbb

ccc ddd
7 6

因为使用gets时字符串的结束是以回车结束的
输入的字符串“ccc ddd”7个字符被赋于s4,而s3为空
scanf和gets不能混用,如果要一起用则在调用scanf后要先调用fflush(stdin)清除文件缓冲区,然后再调用gets。