查看下面给出的代码
#include <stdio.h>
int main()
{
char str[20];
printf("Enter a string : ");
scanf("%s", str);
printf("String : %s", str);
return 0;
}
输出将是,
输入字符串:Hello world
字符串:Hello
我的问题是为什么它只需要第一个单词作为输入?
我的问题是为什么它只需要第一个单词作为输入?
因为这正是文档中所说的%s
说明符应该做的:
任意数目的非空白字符,直到找到第一个空白字符为止。在存储序列的末尾自动添加一个终止null字符。
https://www.cplusplus.com/reference/cstdio/scanf/
您可以使用以下方法
方法1:
scanf("%[^n]",str);
方法2:
fgets(str, MAX_LIMIT, stdin);