用一条新线替换一个或多个空格。

时间:2017-05-10 18:33:02

标签: c

我是运动代码。问题是,用新线替换输入空间。

我写了这样的话:

int input;

while((input = getchar()) != EOF)
{
    if (input == ' ')
    {
        input = '\n';

    }

    putchar(input);

}

但是我不知道如何让它将一个以上的空间改成一个新的行。我有一个想法,就像缓冲区变量(例如int缓冲区)和存储空间,然后检查输入后,前一个字符是否为空格,但我不知道如何使其工作:P < / p>

3 个答案:

答案 0 :(得分:3)

int input, last_was_space = 0;    
while((input = getchar()) != EOF)
{
    if(input == ' ')
    {
        last_was_space = 1;
    }
    else
    {
        if(last_was_space)
        {
            last_was_space = 0;
            putchar('\n');
        }

        putchar(input);
    }
}

答案 1 :(得分:0)

使用此而不是if语句:

if(input == ' ') {
    while (input == ' ')
    {
        input = getchar();
    }
    putchar('\n');
}

答案 2 :(得分:-1)

也许这对你有用,虽然新线不会出现,直到输入结束或输入第一个非空格字符。

JoinableQueue.join()