7.(编程)统计一段任意字符串中各字符种类的数量

题目:求一段任意字符串中各字符种类的数量(指定为ASas,./,[;];[]da cpwjok54511kv ;[]vkvkkkkk)

解题思路:首先要明白,各字符种类在ASCII中分布的区间,例如:数字0~9是48~57,a~z是97~122等。其次,字符是以整数形式(字符ASCII码十进制)在内存单元中存储的,可以通过整数来和字符相互转化。

还要了解getchar()和putchar()的用法!

注意事项:1.要注意while循环控制条件中 (c=getchar())最外层括号不可省略,具体可参考C语言运算符优先级参考表。

              2.if选择结构中也可不采用ASC||码,可直接用对应字符作为判断条件

 1 //代码:
 2 #include<stdio.h>
 3 int main()
 4 {
 5     int letter=0,number=0,nul=0,other=0;
 6     int c;
 7     while((c=getchar())!='\n')
 8     {
 9         if(65<=c&&c<=90||c>=97&&c<=122)    //字母在ASCII表中在的区间
10         {
11             letter++;
12         }
13         else if(48<=c&&c<=57)                //数字在ASCII表中所在的区间
14         {
15             number++;
16         }
17         else if(c==32)                       //空格在ASCII是32
18         {
19             nul++;
20         }
21         Else                              //其他
22             other++;
23     }
24     printf("%d %d %d %d\n",letter,number,nul,other);
25     return 0;
26 }

猜你喜欢

转载自www.cnblogs.com/rookieclimber/p/10830959.html
今日推荐