Chinaunix首页 | 论坛 | 博客
  • 博客访问: 427322
  • 博文数量: 71
  • 博客积分: 26
  • 博客等级: 民兵
  • 技术积分: 1246
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-23 14:46
个人简介

linux --- 一切皆文件

文章分类

全部博文(71)

文章存档

2021年(1)

2019年(2)

2018年(4)

2017年(7)

2016年(11)

2015年(1)

2014年(2)

2013年(33)

2012年(10)

分类: C/C++

2013-05-16 23:14:51

将文本中的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;
}


阅读(619) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~