如何从C中具有领先空格的stdin获取字符串输入?

时间:2020-02-17 16:42:38

标签: c string input whitespace stdin

需要一种使输入字符串以空格开头的解决方案吗?

我知道一种在输入中包含空格的方法

scanf("%[^\n]s", s);

但是它仅适用于单词之间的间隔。 我需要一个以空格开头的字符串的解决方案。 而且我还需要变量中的起始空格

1 个答案:

答案 0 :(得分:3)

要获得用户输入的,请使用fgets()

#define S_MAX_LENGTH
char s[S_MAX_LENGTH + 2];
if (fgets(s, sizeof s, stdin)) {
  s[strcspn(s, "\n")] = '\0'; // Should code want to lop off a potential trailing \n
  ....

请勿使用scanf("%[^\n]s", s);gets(s);。它们遭受缓冲区溢出和其他问题的困扰。