[C language practice:]编写一个程序,删除每个输入行的空格及制表符,并删除完全是空格的行

 1 #include <stdio.h>
2 #define MAXLINE 1000
3 int getLine(char line[],int maxline);
4 int delSpace(char line[]);
5 int main(int argc, char *argv[])
6 {
7 char line[MAXLINE];
8 int len;//before clear white space
9 int afterlen;//after clear white space
10 while((len=getLine(line,MAXLINE))>0)
11 {
12 printf("*************** Result ***************\n");
13 printf("before clear space,length:%d\n",len);
14 afterlen=delSpace(line);
15 printf("after clear space:\n%slength:%d",line,afterlen);
16 }
17
18 return 0;
19 }
20 int getLine(char line[],int maxline)
21 {
22 int c;
23 int i;
24 for(i=0; i<maxline-1&&(c=getchar())!=EOF&&c!='\n'; i++)
25 {
26 line[i]=c;
27 }
28 if(c=='\n')
29 {
30 line[i]=c;
31 i++;
32 }
33 line[i]='\0';
34 return i;
35 }
36 int delSpace(char line[])
37 {
38 int i=0;
39 while(line[i]!='\n')
40 i++; //find the index of '\n'
41 i--;//back to previous one of '\n'
42 while(i>=0&&(line[i]==' '||line=='\t'))
43 i--;
44 if(i>=0)
45 {
46 i++;
47 line[i]='\n';
48 i++;
49 line[i]='\0';
50 }
51 return i;
52 }
posted @ 2012-03-07 01:51  flyice  阅读(407)  评论(0)    收藏  举报