题目:输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。
输入
一行字符。
输出
统计每种字符的个数值。
样例输入:aklsjflj123 sadf918u324 asdf91u32oasdf/.';123
样例输出:23 16 2 4
讲解:对于这种类型的题,我觉得就是对字母、数字、空格、其他字符条件的的判断(后面代码注释中有提到),另一个难点就是空格的计算,如果开数组,可能无法计算到空格,所以我采用的是getchar()输入一个字符,统计一个字符的方法。
代码(希望好好看看里面的注释):
//统计字符串中各类字符的个数
#include<stdio.h>
int main()
{
char c;
int x1=0,x2=0,x3=0,x4=0;
while(c=getchar()){//因为还要统计空格,所以采用输入一个字符,统计一个字符的方法
if(c=='\n') break;//如果点enter键,即输入结束
else if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) x1++;//x1是字母的个数
//如果大小写要分别统计,这里可以将条件写成两部分
else if(c>='0'&&c<='9') x2++;//x2是数字的个数
else if(c==' ') x3++;//x3是空格的数目
else x4++; //x4是其他字符,例如$%^?.等
}
printf("%d %d %d %d",x1,x2,x3,x4);
return 0;
}
样例结果:
差不多就这样,这道题难度不大,但要足够将细节考虑完全。
最后,如有问题,欢迎指正。