c - 用一个新行替换一个或多个空格。

标签 c

我是练习代码。问题是,用新行替换输入中的空格。

我写了这样的内容:

int input;

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

    }

    putchar(input);

}

但我不知道如何让它将多个空格更改为一个新行。我有一个想法,制作类似缓冲区变量(例如 int buffer)并在其中存储空间,然后检查输入后前一个字符是否为空格,但我不知道如何使其工作:P

最佳答案

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);
    }
}

关于c - 用一个新行替换一个或多个空格。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43900246/

相关文章:

c - 使用 openssl evp aes_256_ctr() 模式加密时生成无效字符

C从字符串中解析一个巨大的int数组

我们可以在没有 &&/|| 的情况下让 while 循环同时测试两个参数吗

c - 在 C 中以编程方式检测 Linux 中的桌面环境

c - 我如何操纵位从0x00到0x34,以便创建由这些值表示的卡座

c - C-如何解析反斜杠字符

c - 字符串中每个字母的大小写切换

c - system() C函数可以吗?

c - OpenMP 基准并行计算

c++ - C/C++ 中的等式