原题链接:[编程入门]字符串分类统计
解题思路:C标准中有一个一个头文件<ctype.h>,这里面定义了一批C语言字符处理函数,用于测试字符是否属于特定的字符类别,如字母字符、控制字符、数字、等等;
头文件:<ctype.h>
函数:
(1)int isalpha(int ch);
判断ch是否为字母,如果是返回非0,反之返回0;
(2)int isdigit(int ch);
判断ch是否为数字,如果是返回非0,反之返回0;
(3)int islower(int ch);
判断ch是否为小写字母,如果是返回非0,反之返回0;
(4)int isupper(int ch);
判断ch是否为大写字母,如果是返回非0,反之返回0;
……
等等很多处理字符的函数,大家有兴趣可以去看看博客。
注意事项:
参考代码:
#include <stdio.h>
#include <ctype.h>
int main()
{
int letter = 0,number = 0,blank = 0,others = 0,c; //分别为字母、数字、空格、其他
while((c = getchar()) != '\n'){
if(isalpha(c)) //判断是否为字母
letter++;
else if(isdigit(c)) //判断是都为数字
number++;
else if(c == ' ') //判断是否为空格
blank++;
else //其他
others++;
}
printf("%d %d %d %d\n",letter,number,blank,others);
return 0;
}0.0分
87 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include<stdio.h> #include<string.h> int main() { char string[200]; int i,y=0,s=0,k=0,q=0; char c; gets(string); c=string[i]; for(i=0;i<strlen(string);i++) { if(c==' ') k++; else if('A'<=c&&c<='Z'||'a'<=c&&c<='z') { y++; } else if('0'<=c&&c<='9') { s++; } else { q++; } } printf("%d %d %d %d ",y,s,k,q); return 0; } 大佬,我的为什么不行呢,也不知道问题出哪了,可以帮看一下吗#include<stdio.h> #include<math.h> #include<ctype.h> int main() { char array[199]; int alpha=0,digit=0,space=0,other=0; gets(array); int len=strlen(array); for(int i=0;i<len;i++){ if isalpha(array[i]){ alpha++; }else if isdigit(array[i]){ digit++; }else if((int)array[i]==32){ space++; } } other=len-alpha-digit-space; printf("%d %d %d %d",alpha,digit,space,other); return 0; }//输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。 //可以一个一个输入然后循环判断 #include<stdio.h> int main() { int english=0,number=0,bank=0,others=0; int a; while((a=getchar()) != '\n'){ if (a>='a' && a<='z') { english++; }else if(a>='0' && a<='9') { number++; }else if(a==' ') { bank++; }else { others++; } } printf("%d %d %d %d",english,number,bank,others); return 0; }求教,为什么答案不对。 #include<stdio.h> #include<string.h> int main() { char st[200]; int number=0,blank=0,other=0,leeter=0,i; gets(st); i=strlen(st); int n=0; for(n=0;n<i;n++) { if((st[n]<='z'&&st[n]>='a')||(st[n]>='A'&&st[n]<='Z')) leeter=leeter+1; else if(st[n]=' ') blank=blank+1; else if(st[n]<='9'&&st[n]>='1') number=number+1; else other=other+1; } printf("%d %d %d %d",number,other,blank,leeter); return 0; }