redHmian 发表于 2021-11-7 22:27:29

为什么程序运行之后只统计了小写的字母,没有统计到大写的字母?

题目:要求统计每个字母出现的次数,不区分大小写

代码:
#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

人造人 发表于 2021-11-7 22:57:00

#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]
查看完整版本: 为什么程序运行之后只统计了小写的字母,没有统计到大写的字母?