/*
删除每个输入行末尾的空格及制表符,并删除完全是空格的行
*/
#include <stdio.h>
#include <string.h>
#define MAXLINE 1000
#define LONGLINE 10
int getLine(char s[], int lim);
int removeBlank(char s[]);
int main(int argc, char* argv[])
{
int i = 0;
char line[MAXLINE];
int len = 0;
while((len = getLine(line,MAXLINE))>0)
{
if(removeBlank(line)>0)
{
printf("len:%d line:%s",len,line);
}
}
return 0;
}
//返回输入行的长度
int getLine(char s[], int lim)
{
int c, i, j;
for(i = 0, j = 0; (c = getchar())!=EOF && c != '\n'; ++i)
{
if(i < lim - 1)
{
s[j++] = c;
}
}
if(c == '\n')
{
if(i <= lim - 1)
{
s[j++] = c;
}
++i;
}
s[j] = '\0';
return i;
}
int removeBlank(char s[])
{
int 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;
}