c语言计算一串字符中某个字符的数目,计算字符串中字符出现的次数
getchar函数的作用是读取一个字符串并返回。当输入或读取过程中出现错误时,将返回EOF值。
#包含stdio.h
int main(void){
int i,str
int count[10]={ 0 };
Puts(请输入一个数字:);
Puts(输入完成后按Enter );
Puts(再次按Ctrl z
Puts(“回车结束”);
while ((str=getchar())!=EOF){
开关(字符串){
案例39;0 #39;
count[0];
打破;
案例39;1 #39;
count[1];
打破;
案例39;2 #39;
count[2];
打破;
案例39;3 #39;
count[3];
打破;
案例39;4 #39;
计数[4];
打破;
案例39;5 #39;
计数[5];
打破;
案例39;6 #39;
计数[6];
打破;
案例39;7 #39;
计数[7];
打破;
案例39;8 #39;
计数[8];
打破;
案例39;9 #39;
计数[9];
打破;
}
}
Puts(数字字符的出现次数:);
for(I=0;i 10i ){
printf(%d: %d\n ,I,count[I]);
}
返回0;
}运行结果:
注意:
在需要object宏EOF的程序中,如果没有包含stdio.h头文件,则下面的定义是不可接受的。
#定义EOF -1
因为EOF指定为“负”但不一定“-1”。
缓冲:缓冲:
在这个程序中,每个字符不是在读入后立即输出,而是在按下回车键后输出。
C语言的输入输出一般会把要读入的字符和要输出的字符暂存在缓存中,只有满足以下条件才会进行实际的输入输出操作。
1.缓存已满(完全缓冲)2。输入一个换行符(行缓冲)3。立即输出(无缓冲)。由于每个数字字符在ASCII码表中都有相应的值,所以字符的值可以由下面的程序打印出来。
#包含stdio.h
int main(void){
int I;
printf(EOF=%d\n ,EOF);
for(I=0;i 10i ){
printf( % d =% d \ n ,I, 0 I);
}
返回0;
}运行结果:
利用ASCII码表中字符的对应值,可以改进计算字符串中数字字符个数的程序中的代码,使程序更加简洁。
#包含stdio.h
int main(void) {
int i,j,str
int count[10]={ 0 };
Puts(请输入一个数字:);
Puts(输入完成后按Enter );
Puts(再次按Ctrl z
Puts(“回车结束”);
while ((str=getchar())!=EOF) {
if (str=0 str=9) {
count[str- 0 ];
}
}
Puts(数字字符的出现次数:);
for(I=0;i 10i ) {
printf(%d:,I);
for(j=0;j count[I];j ){
putchar( * );
}
puts(“”);
}
}运行结果
转载请联系作者授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。