|
发表于 2020-11-20 00:23:02
|
显示全部楼层
本楼为最佳答案
本帖最后由 jackz007 于 2020-11-20 00:27 编辑
- #include <stdio.h>
- int main(void)
- {
- char ch ;
- int b , c , d , k , n , o ;
- scanf("%d" , & n) ;
- fflush(stdin) ; // 【关键语句】,执行 scanf() 以后,清除键盘缓冲区中剩余的 '\n'
- // 以免牵累后续 getchar() 的执行,造成最终结果错误。
- for(c = d = b = o = k = 0 ; k < n ; k ++) {
- ch = getchar() ;
- if(ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <= 'z') {
- c ++ ;
- } else if(ch >= '0' && ch <= '9') {
- d ++ ;
- } else if(ch == ' ' || ch == '\n') {
- b ++ ;
- } else {
- o ++ ;
- }
- }
- printf("letter = %d , blank = %d , digit = %d , other = %d\n" , c , b , d , o) ;
- }
复制代码
编译、运行实况:
- D:\00.Excise\C>g++ -o x x.c
- D:\00.Excise\C>x
- 10
- aZ &
- 09 Az
- letter = 4 , blank = 3 , digit = 2 , other = 1
- D:\00.Excise\C>
复制代码 |
|