#include <stdio.h>
//将输入复制到输出,将连续多个空格用一个空格代替
//如果上一个是空格,不打印。这样做直到下一个不是空格。
int main(void){
int c;
int last=0;//前面不是空格
c=getchar();
while(c!=EOF){
if(c==' '){
if(last==0){//如果前面不是空格
putchar(c);
last=1;
}
//else if(last==1){//如果前面是空格
// Do nothing
//}
}
else {
putchar(c);
last=0;
}
c=getchar();
}
}
书上的方法:
#include <stdio.h>
#define NONBLANK 'a'
//将输入复制到输出,将连续多个空格用一个空格代替
int main(void){
int lastc;
int c;
lastc=NONBLANK;//将变量lastc初始化为一个任意的非空格字符
while((c=getchar())!=EOF){
if(c!=' ')
putchar(c);
if(c==' ')
if(lastc!=' ')
putchar(c);
lastc=c;//刷新lastc
}
}
有递归调用的思想