Chinaunix首页 | 论坛 | 博客
  • 博客访问: 428069
  • 博文数量: 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 22:17:20

将每行最后的所有空格和table,都删除掉然后输出。
首先得到这行的最后,然后往回删。


#include

#define MAXLEN 1000

int mygetline(char line[],int maxlen);
int move(char line[]);

int main(void)
{
    int c,len,maxlen;
    char line[MAXLEN];


    while((len = mygetline(line,MAXLEN)) > 0){
    if(move(line) > 0)
        printf("%s",line);
}
return 0;
}

int mygetline(char line[],int maxlen)
{
    int i,c;


    for(i = 0;i < maxlen -2 &&(c = getchar()) != EOF && c != '\n';i ++){
        line[i] = c;
    }
    if(c == '\n'){
        line[i] = '\n';
        i ++;
    }
    line[i] = '\0';
    return i;
}


int move(char line[])
{
    int i = 0;   
    while(line[i] != '\n'){
    i  ++;
    }
    i --;

    for(;i > 0 && (line[i] == ' ' || line[i] == '\t');i --){
        continue;
    }

    if(i > 0){
        i ++;
        line[i] = '\n';
        i ++;
        line[i] = '\0';
    }
    return i;
}


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