1-18 编写一个程序,删除每个输入行末尾的空格及制表符,并删除完全是空格的行

/*编写一个程序,删除每个输入行末尾的空格及制表符,并删除完全是空格的行*/

#include <stdio.h>
#define MAXLINE 1000 //允许输入行的最大长度
int getline(char line[], int maxline);

int removes(char s[]);

main()
{
char line[MAXLINE];
while(getline(line, MAXLINE) > 0)
if(removes(line) > 0)
printf("%s", line);
return 0;
}
// getline函数: 讲一行读入到S中,并返回其长度
int getline(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;
while(i >= 0 && (s[i] == ' ' || s[i] == '\t'))
--i;//查询末尾是空格及制表符,并去除
if(i >= 0)//给行末尾加上换行符及空字符
{
++i;
s[i] = '\n';
++i;
s[i] = '\0';
}
return i;
}

posted @ 2022-02-12 17:07  笨笨的小虫子  阅读(172)  评论(0)    收藏  举报