1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 
 5 #define MAXLINE 1000 //允许输入行的最大长度
 6 
 7 int get_Line(char line[], int maxline);
 8 
 9 int removes(char s[]);
10 
11 main()
12 {
13     char line[MAXLINE];
14     while(get_Line(line, MAXLINE) > 0)
15         if(removes(line) > 0)
16             printf("%s", line);
17     return 0;
18 }
19 // getline函数: 读一行读入到S中,并返回其长度
20 int get_Line(char s[], int lim)
21 {
22     int c, i, j;
23     j = 0;
24     for(i = 0; (c = getchar()) != EOF && c != '\n'; ++i)
25         if(i < lim - 2)
26         {
27             s[j] = c;
28             ++j;
29         }
30     if(c == '\n')
31     {
32         s[j] = c;
33         ++j;
34         ++i;
35     }
36     s[j] = '\0';
37     return i;
38 }
39 //删除字符串的空格和制表符并返回新的长度
40 int removes(char s[])
41 {
42     int i;
43     i = 0;
44     while(s[i] != '\n' && i < MAXLINE-2)  //查找'\n'在数组中对应的下标
45         ++i;
46     if(i != MAXLINE-2)
47         --i;
48     while(i >= 0 && (s[i] == ' ' || s[i] == '\t')) // 从字符串末尾起向前查找字符值不是''和'\t'的字符所对应的下标
49         --i;
50     if(i >= 0)
51     {    
52         ++i;
53         s[i] = '\n';
54         ++i;
55         s[i] = '\0';
56     }
57     return i;
58 }

 存在不足:每次输入一行字符,处理结果会紧接着下一行输出,不太容易观看

posted on 2020-04-25 16:20  杪杪  阅读(354)  评论(0)    收藏  举报