您的位置:首页 > 其它

空格串替换为最少数量的制表符和空格

2016-08-05 15:21 441 查看
#include <stdio.h>
#include <stdlib.h>
#define TAB 8
//先说明一下tab键,tab,不是跳固定长度,而是跳到下一制表的开始位置.
int main()
{
int space=0;//空格
int tab=0;//制表符
int position=0;//当前字符位置
char ch;//case中用|表示非空格字符,*表示空格
while((ch=getchar())!=EOF){
position++;
if(ch==' '){
if(position%TAB!=0)//case:||||*|||(空格串夹中间),****||||(空格串在前)
space++;
else{//case:||||****(空格串在后)
space=0;
tab++;
}
}
else{
for(int i=1;i<=tab;i++)
printf("%c",'\t');
tab=0;
if(ch=='\t')//case:||||****(这几个空格已被tab代替)**'\t'
space=0;
for(int i=1;i<=space;i++)
printf("%c",' ');
space=0;
putchar(ch);
if(ch=='\n')
position=0;
else if(ch=='\t')
position=position+(TAB-position%TAB);

}
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐