是否可以在文本中用空格+一个字只在C中扫描?使用scanf只扫描一个字,但在前面有空格
这里的示例文本:
"Oh my god!"
下面是函数:
...declarations...malloc...etc.
for (int i = 0; ; i++)
{
some_scanf_func(s, "%some format", input);
c = getchar();
if (c == EOF)
break;
else
ungetc(c, stdin);
}
所以我输入的是:
"Oh" when i = 0;
" my" when i = 1;
" god!" when i = 2;
空间是在这个词的前面。 Punctuaions被算作有效字符。
谢谢chux的诀窍,谢谢你的回答。
用fgets读取该行,用strtok对其进行扫描。 –
@CharlieBurns:使用'strtok()'blats(zaps,覆盖)分隔符;整个字符串是需要的,所以你不能在这里使用'strtok()'。 –
如果每个单词之间有几个空格,您希望输出什么?为什么你认为领先的空间很重要,因为他们肯定会使这成为一个难题? –