练习1-8 1-9 1-10 打印制表符,换行符,空格等

1-8 编写一个统计空格、制表符和换行符个数的程序

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int c, nc, nl, nt; //nc为换行符,nl为制表符,nt为空格
 6     nc = nl = nt = 0;
 7     while((c = getchar()) != EOF){
 8         if(c == '\n')
 9             nc++;
10         else if(c == '\t')
11             nl++;
12         else if(c == ' ')
13             nt++;
14     }
15     printf("%d %d %d\n", nc, nl, nt);
16     return 0;
17 }

1-9 编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int c, last;
 6     last = 0;
 7     while((c = getchar()) != EOF){
 8         if(c != ' ')
 9             putchar(c);
10         else if(last != ' ')
11             putchar(c);
12         last = c;
13     }
14     return 0;
15 }

 

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int c, last;
 6     last = 0;
 7     while((c = getchar()) != EOF){
 8         if(c != ' ' || last != ' ')
 9             putchar(c);
10         last = c;
11     }
12     return 0;
13 }

1-10 编写一个将输入复制到输出的程序,并将其中的制表符替换为\t,把回退符替换为\b,把反斜杠替换为\\

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int c;
 6     while((c = getchar()) != EOF){
 7         if(c == '\t')
 8             printf("\\t");
 9         else if(c == '\b')
10             printf("\\b");
11         else if(c == '\\')
12             printf("\\\\");
13         else
14             putchar(c);
15     }
16     return 0;
17 }

 

posted @ 2017-10-24 14:50  忘忘它吧  阅读(470)  评论(0编辑  收藏  举报