[C程序设计语言]练习1-9 编写一个将输入复制到输出的程序,并将其中多个连续的空格用一个空格代替。

当前输入字符可以分为两种情况:

1、当前输入字符不为空,则直接输出这个字符即可;

2、当前输入字符为空,这种情况又可以分为两种情况:

①、上一个输入字符也为空,则忽略此次输入的空格即可;

②、上一个输入字符不为空,则直接输出这个字符即可。

基本思想是:
  设置两个变量,分别记录当前输入的字符和上一次输入的字符,“上一个字符”初始化为EOF。
  如果当前输入字符为空,上一个输入字符也为空,则忽略当前输入的字符。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int c;     /* 用于存放当前输入的字符 */
    int pc;    /* 用于存放当前输入的上一个字符 */

    while((c = getchar()) != EOF)
    {
        if (c != ' ')
        {
            putchar(c);
        }
        else if (pc != ' ')
        {
            putchar(c);
        }

        pc = c;
    }
}

经验证 代码可实现相关功能

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页