[toc]
练习 1-8
编写一个统计空格、制表符与换行符个数的程序
#include<stdio.h>
int main()
{
int cnts=0, cntt=0, cntn=0;char c; //声明变量
while((c=getchar())!=EOF){ //输入字符,输入为EOF时退出循环
if(c==' '){ //检测空格
cnts++;
}else if(c=='\t'){ //检测制表符
cntt++;
}else if(c=='\n'){ //检测换行符
cntn++;
}
}
printf("%d %d %d", cnts, cntt, cntn);
return 0;
}
练习1-9
编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替
#include<stdio.h>
int main()
{
char c;int flag=1;
while((c=getchar())!=EOF){
if(c==' '){
if(flag){ //当空格第一次出现输出空格,否则不输出
putchar(c);
flag = 0;
}
}else{
putchar(c);
flag = 1; //将空格的状态初始化
}
}
return 0;
}
练习1-10
编写一个将输入复制到输出的程序,并将其中的制表符替换为\t,把回退符替换为\b,把反斜杠替换为\
#include<stdio.h>
int main()
{
char c;
while((c=getchar())!=EOF){
if(c=='\t'){
putchar('\\'); //输出'\'
putchar('t'); //输出't' 下面同理
}else if(c=='\b'){
putchar('\\');
putchar('b');
}else if(c=='\\'){
putchar('\\');
putchar('\\');
}else{
putchar(c);
}
}
return 0;
}