【发布时间】:2017-05-10 18:33:01
【问题描述】:
我是练习代码。问题是,用新行替换输入中的空间。
我是这样写的:
int input;
while((input = getchar()) != EOF)
{
if (input == ' ')
{
input = '\n';
}
putchar(input);
}
但我不知道如何使它将多个空格更改为恰好一个新行。我有一个想法,制作类似缓冲区变量(例如 int 缓冲区)并在其中存储空间,然后在输入后检查前一个字符是否为空间,但我不知道如何使其工作:P
【问题讨论】:
-
什么?你有你的代码,为什么你对它不满意?你想让他们全部消失还是什么?
-
添加一个标志,表明它已经被替换过一次。真的,简单的逻辑。
-
@gsamaras OP 想要
s/\s+/$/ -
@gsamaras 是的,我希望所有这些都消失 :P 当我创建多个空格时,我的代码会出现问题,并且我希望我的单词或字符(没关系,只需输入)低于另一个:P
-
尝试一个状态机,三种状态:读取一个空格;阅读空间以外的东西;阅读EOF。 ...
标签: c