请教 C语言字符串输入问题

来源:百度知道 编辑:UC知道 时间:2024/05/19 01:21:54
char str1[5],str2[5],str3[5];
scanf("%s%s%s",str1,str2,str3);
输入数据:
How are you?
后按下回车。
运行结果是:
str1[5]="How\0\0"
str2[5]="are\0\0"
str3[5]="you?\0"

请问为什么,为什么输入时按个空格就转到下一数组。请详细解释一下。

这个是scanf()语句规定的; 把空格做为分格符,你要不想这样了可以在里面加点东西就可以把回车做结束符了
scanf("%[^\n]",str);/* 接受包括空格字符的字符串*/

空格是分隔符

scanf("%s %s %s",str1,str2,str3);