为什么程序运行之后只统计了小写的字母,没有统计到大写的字母?
题目:要求统计每个字母出现的次数,不区分大小写代码:
#include <stdio.h>
struct Count
{
char word;
int num;
}count;
void main()
{
char string[]="AAABBcdzz",*str;
str=string;
for(int i=0;i<26;i++)
{
count.word='a'+i;
count.num=0;
}
for(int j=0;'a'+j<='z';j++)
{
for(int i=0;*(str+i)!='\0';i++)
{
if(*(str+i)==count.word || *(str+i)==count.word+32)
{
count.num++;
}
}
}
for(int n=0;n<26;n++)
{
if(count.num!=0)
printf("%c%d\n",count.word,count.num);
}
}
运行结果:
c1
d1
z2 #include <stdio.h>
struct Count
{
char word;
int num;
}count;
//void main() // error
int main(void)
{
char string[]="AAABBcdzz",*str;
str=string;
for(int i=0;i<26;i++)
{
count.word='a'+i;
count.num=0;
}
for(int j=0;'a'+j<='z';j++)
{
for(int i=0;*(str+i)!='\0';i++)
{
//if(*(str+i)==count.word || *(str+i)==count.word+32)
//if(*(str+i)==count.word || *(str+i)==count.word-32)
if(str == count.word || str == count.word - 'a' + 'A')
{
count.num++;
}
}
}
for(int n=0;n<26;n++)
{
if(count.num!=0)
printf("%c%d\n",count.word,count.num);
}
return 0;
}
页:
[1]