|
发表于 2020-3-9 15:50:20
|
显示全部楼层
本帖最后由 jackz007 于 2020-3-9 15:51 编辑
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- char * p ;
- int a , b , c , d , i ;
- if((p = (char *) malloc(256))) {
- p = gets(p) ;
- for(a = 0 , b = 0 , c = 0 , d = 0 , i = 0 ; * (p + i) ; i ++) {
- if((*(p + i) >= 'A' && *(p + i) <= 'Z') || (*(p + i) >= 'a' && *(p + i) <= 'z')) a ++ ;
- else if(*(p + i) >= '0' && *(p + i) <= '9') b ++ ;
- else if(*(p + i) == ' ') c ++ ;
- else d ++ ;
- }
- printf("%d %d %d %d" , a , b , c , d) ;
- free(p) ;
- } else {
- fprintf(stderr , "Error : malloc()\n") ;
- }
- }
复制代码
不可以用 scanf() ,空格字符 ' ' 是 scanf() 默认的多个输入项之间的分隔符,因此,用 scanf() 无法跨过空格符获取完整的字符串输入。 |
|