c程序设计语言 习题1-9

最近开始看《c程序设计语言(K&R)》,配合《C primer plus》一起。前者的习题对于我这样几乎零基础的还是有一定难度。觉得有必要记下自己遇到的问题,和思索并解决的过程。

Exercise 1-9
- write a program to copy its input to its output,replacing each string of one or more blanks by a single blank.
-写一个程序,把输入复制到输出,并用一个空格代替一个或多个空格。

 *复制输入到输出,用putchar()和getchar()。要用一个空格代替一个或者多个空格,则需要判断上一个字符和当前字符是否都为空格:
  分析发现,当lastc和c有任意一个不为空格时即输出当前字符,如果都为空格,则不作输出。*

 下面是我的代码:
#include
int main(void)
{
    int lastc = ' ';  //用lastc代表上一个字符,并初始化为空格;
    int c;

    while((c=getchar()) != EOF){
        if(c != ' ' || lastc != ' '){  //任意一个不为空则输出;
            putchar(c);
            lastc = c;
        }
    }

    return 0;
 }

运行程序,可以将多个空格转换为一个空格。

你可能感兴趣的:(C语言)