首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

将输入复制到输出的程序,将延续的空格用一个空格代替

2013-06-26 
将输入复制到输出的程序,将连续的空格用一个空格代替。#include stdio.h#include stdlib.hint main(voi

将输入复制到输出的程序,将连续的空格用一个空格代替。

#include <stdio.h>
#include <stdlib.h>
int main(void){

int now,former;
while((now = getchar()) != EOF){
if (now != ' ')
   putchar(now);
else{
     former = now;
 now = getchar();
 if (now != ' '){
 putchar(former);
 putchar(now);
     }
 else 
 putchar(now);
    }

 }
system("pause");
return 0;
}
我写的这种方法只能将连续的两个空格用一个代替,有什么好办法呢
[解决办法]


#include <stdio.h>
#include <stdlib.h>
int main(void){

int now;
BOOL hasSpace = TRUE;
while((now = getchar()) != EOF){
    if (now != ' '){
      putchar(now);
      hasSpace = FALSE;
    }
    else if(!hasSpace){
      putchar(now);
      hasSpace = TRUE;
    }
}
system("pause");
return 0;
}

[解决办法]
程序的逻辑应该差不多这样。
读取一个字符,如果是空格,标记空格标记为真,然后扔掉。
如果不是空格,看空格标记,如果空格标记为假则输出,如果空格标记为真则输出一个空格,然以输出这个读入的字符,然后将空格标记设为假。

热点排行