如何在C中接受带空格的字符串输入

时间:2014-02-23 19:05:48

标签: c string

编辑:我认为我的问题来自我正在使用的编译和Linux VM。请忽略。

我是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。

谢谢

1 个答案:

答案 0 :(得分:2)

Scanf习惯截断您的输入以匹配其格式。没有任何花哨的要求或其他工具,你可以从stdin等获得fgets的输入,然后使用像strtok这样的函数将你的字符串标记为你需要的东西(姓名,姓氏等)。 / p>