c - 用 C 输出一首诗,每个单词换行

标签 c getchar putchar

我在 C 编程课中有一项作业,要求仅使用函数 getcharputchar 输出一首诗,每个单词都在新行上。我已经编写了程序的大部分内容,但我不知道如何只为多个空格添加一个新行。例如,当有多个空格时,输出中就会出现间隙,这是我不想要的。有谁知道如何纠正这个问题吗?

int main(int argc, const char * argv[])
{
    /* Variables declared */
    int iochar;

    /* While loop */
    while ((iochar = getchar() ) != EOF) {

        /* If statement to return on alphabetic characters, not puncuation */
        if (((iochar >= 'A') && (iochar <= 'Z')) || ((iochar >= 'a') && (iochar <= 'z'))) {
            putchar(iochar);
        }

        /* If statement to produce a new line when a space is detected */
        if (iochar == ' ') {
            putchar('\n');
        }
    }

    return 0;
}

最佳答案

您可以将前一个字符存储在另一个变量中,并且仅当当前字符是空格且前一个字符不是空格时才输出换行符。

顺便问一下:输入中的数字会发生什么?

关于c - 用 C 输出一首诗,每个单词换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12486421/

相关文章:

c - C 中的 fscanf() - 需要帮助使用指针表示法读取文件

c - 将数据输入数组的函数,在 EOF 处退出输入但允许恢复输入

c - C 代码中的问题

c - 为什么这不消除 C 中的双空格?这是 K & R 中的 getchar() 练习之一

c - getchar() != EOF

c - GDAL 1.11 不支持 vector ?

c - OpenMP 自定义缩减变量

c - 在 c 中使用 getchar() 获取段错误(核心转储)

python - Python 3 中是否有类似于 C++ 中的 getchar() 的内置函数?

c - 指向二维数组的指针