如果在scanf语句中提供字符串“ Alice in wonder land”,以下代码(底部代码)的输出是什么?我的书说输出应该是:
Alice
in
wonder
land
好吧,如果我将“爱丽丝梦游仙境”作为一个单独的字符串提供,为什么这是输出?当我将“爱丽丝梦游仙境”作为单个字符串提供时,如何在单词“ Alice”,“ in”,“ wonder”,“ land”之间提供空格,使它们成为单独的字符串?
#include<stdio.h>
void main()
{
char s1[10], s2[10], s3[10], s4[10];
scanf("%s%s%s%s", s1, s2, s3, s4);
printf("\n%s\n%s\n%s\n%s", s1, s2, s3, s4);
getch();
}
谢谢! :)
最佳答案
这就是scanf
的工作方式。 %s
格式说明符告诉scanf
读取直到任何空格(包括任意数量的空格,制表符或Enter键)并将其存储在相应的地址中。
从人,%s
转换规范,
匹配一系列非空格字符;下一个指针必须是指向字符数组的指针,该指针的长度必须足以容纳输入序列和终止的空字节('\ 0'),该字符会自动添加。输入字符串停在空白处或最大字段宽度处,以先到者为准
关于c - 空格将字符串分成不同的字符串吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17774092/