exercise1-18

Write a program to remove trailing blanks and tabs from each line of input,and to delete entirely blank lines.

1、各种常用键的ASCII码值是多少,参见网页:查看常用键的ASCII码值

空格:32

制表:9


………………………………………………………………………………………………………………………………………………………

#include<stdio.h>
#define MAXLINE 1000


int getlines(char line[],int maxline);
int removes(char s[]);


/*print the new input line*/
main()
{
        char line[MAXLINE];


        while(getlines(line,MAXLINE)>0)
          if(removes(line)>0)
                printf("%s",line);
        return 0;
}


int getlines(char s[],int lim)
{
        int c,i;


        for(i=0;i<lim-1 && (c= getchar()) != EOF && c!='\n';++i)
                s[i]= c;

        if ( c =='\n')

       {

                s[i] = c;

                    ++i;

       }
        
        s[i] = '\0';
        return i;
}


int removes(char s[])
{
        int i;


        i = 0;
        while(s[i] != '\n')
        ++ i;
        i = i-1;


        while(i >= 0 && (s[i] == ' '||s[i] == '\t'))
        --i;


        if(i>=0){
        ++ i;
        s[i] = '\n';
        ++ i;
        s[i] = '\0';

       }

       return i;

}




delete.c

这一题目当时理解有误,以为是删除单词之间的多余空格和tab键,后来才明白题目要求很简单,trailing blanks是指输入结束后,文本末尾多余的空格和tab键。

NOTE:绝对不能自以为是,或许有些时候就是简单的理解偏差而已。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值