我正在尝试显示输入answer2
的用户答案,但它只显示完整输入句子的第一个单词。
#include <stdio.h>
int main()
{
char answer[20];
char answer1[20];
char answer2[100000];
printf("What is your first name \n");
scanf(" %s",answer);
printf("What is your favorite color \n");
scanf(" %s",answer1);
printf("What is your quest \n");
scanf(" %s",answer2);
printf("Your name is %s,Your favorite color is %s,and your quest is s %s",answer,answer1,answer2);
return 0;
}
答案 0 :(得分:1)
%s
的{p> scanf()
会在遇到空白时停止扫描。因此,您无法使用它来扫描多个单词。
使用%s
scanf()
转化说明符引用标准
s
匹配一系列非空白字符。
因此,它将扫描直到它在输入中找到空格。具有多个单词(由空格分隔)的输入将不会被完全扫描,只会扫描并存储第一个单词。
相反,更好的方法是使用fgets()
来扫描包含空格的输入,然后去除尾随换行符和标记化(如果需要)。