void test();
void charcount(char str[],int lowercase[],int uppercase[],int math[]),int biaodian[]);
int main(void)
{
test();
return 0;
}
void test(void)
{
char str[200];
int lowercase[26]={0},uppercase[26]={0},math[10]={0},biaodian[7]={0};
int i;
gets(str);
charcount(str,lowercase,uppercase,math,biaodian);
for(i=0;i<26;i++)
{
if(lowercase[i]!=0)
{
printf(\"小写字母%c的统计个数为%d\\n\
}
}
for(i=0;i<26;i++)
{
if(uppercase[i]!=0)
{
printf(\"大写字母%c的统计个数为%d\\n\
}
}
for(i=0;i<10;i++)
{
if(math[i]!=0)
{
printf(\"数字%c的统计个数为%d\\n\
}
}
for(i=0;i<10;i++)
{
if(biaodian[i]!=0)
{
printf(\"标点%c的统计个数为%d\\n\
}
}
}
void charcount(char str[],int lowercase[],int uppercase[],int math[],int biaodian[])
{
int i=0;
while(str[i]!='\\0')//对字符数组中的每个字符进行循环,直到遇到字符串结束标志\\0止
{
//判断当前字符是否为小写字母,如果是,则对应该小写字母的统计变量加1
if(str[i]>='a'&&str[i]<='z')
{
lowercase[str[i]-'a']++;
}
if(str[i]>='A'&&str[i]<='Z')
{
uppercase[str[i]-'A']++;
}
if(str[i]>='1'&&str[i]<='10')
{
math[str[i]-'1']++;
}
if(str[i]>=':'&&str[i]<='@')
{
biaodian[str[i]-':']++;
}
i++;
}
}