我是C的新手,无法接受带空格的字符串输入。我在这个网站上搜索了答案,但是没有提出的解决方案有效,fgets和scanf都会在第一个空格到达时截断字符串。我也尝试过scanf(“%99 [^ \ n]”,名称),这也不起作用。
这是我的代码:
#include<stdio.h>
int main ()
{
char name[100];
printf("What is your name? ");
fgets(name, 100, stdin);
printf("Hello %s. Nice to meet you\n", name);
return 0;
}
我也试过scanf,但是如果输入是john smith,它只输出john。
谢谢
答案 0 :(得分:2)
Scanf习惯截断您的输入以匹配其格式。没有任何花哨的要求或其他工具,你可以从stdin等获得fgets
的输入,然后使用像strtok
这样的函数将你的字符串标记为你需要的东西(姓名,姓氏等)。 / p>