将文本中的table转换成空格。
如果table后的字符数肯定是4的倍数。(默认一个table为4个空格)
首先得统计字符数,然后判断和4的倍数之间的差值,然后输出这么多空格~~
#include
#define TABSIZE 4
int main(void)
{
int c,pos = 0,nb;
while((c = getchar()) != EOF){
if(c == '\t'){
nb = TABSIZE - (pos - 1)/TABSIZE;
while(nb > 0){
putchar(' ');
nb --;
}
}else if(c == '\n'){
putchar('c');
pos = 1;
}else{
pos ++;
putchar(c);
}
}
return 0;
}
将连续的空格转换成最多的TABLE和空格符。
#include
#define TABSIZE 4
int main(void)
{
int c,nb,nt,pos;
int i;
nb = nt = pos = 0;
while((c = getchar()) != EOF){
pos ++;
if(c == ' '){
if(pos % TABSIZE != 0){
nb++;
}else{
nb = 0;
nt ++;
}
}else{
for(;nt > 0 ;nt --){
putchar('\t');
}
if(c == '\t'){
nb = 0;
}else{
for(;nb > 0;nb --){
putchar(' ');
}
}
putchar(c);
if(c == '\n'){
pos = 0;
}else if (c == '\t'){
pos = pos + (TABSIZE - (pos- 1) % TABSIZE) -1;
}
}
}
return 0;
}
阅读(659) | 评论(0) | 转发(0) |