#include<stdio.h>
#define MAXLINE 1000
int getline(char s[] , int lim) ;
int remove(char s[]) ;
main()
{
char line[MAXLINE] ;
while(getline(line,MAXLINE) > 0)
if(remove(line) > 0)
printf("%s",line) ;
}
int getline(char s[] , int lim)
{
int c,i,j ;
i = 0 ;
j = 0 ;
while((c = getchar()) != EOF && c != '\n' ){
if(j < lim - 2){
s[j] = c ;
++ j ;
}
++ i ;
}
if(c == '\n'){
s[j] = c ;
++ j;
++ i;
}
s[j] = '\0' ;
return i ;
}
int remove(char s[])
{
int i ;
i = 0 ;
while(s[i] != '\n')
++ i ;
-- i ;
for( ;i > 0 && s[i] == ' ' || s[i] == '\t' ; --i);
if(i >= 0){
++ i ;
s[i] = '\n' ;
++ i ;
s[i] = '\0' ;
}
return i ;
}
PS remove()这个函数的关键是倒序处理字符数组,一开始我正序处理,弄了半天也没搞出来
编写一个程序,删除每个输入行末尾的换行符和制表符,并删除完全是空格或制表符的行<The C Programming Language>课后习题
最新推荐文章于 2023-07-13 20:00:16 发布