最近开始看《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<stdio.h>
int main(void)
{
int lastc = ' '; //用lastc代表上一个字符,并初始化为空格;
int c;
while((c=getchar()) != EOF){
if(c != ' ' ||