统计大写字母个数怎么做qwq

img

img


为什么这么做有一些字母的个数统计是错误的,一些字母的个数统计是正确的。

#include  <stdio.h>
 
int main()
{
    char str[80], *pstr;                 //定义一个字符数组和指针
    int zimu[26] = {0};                  //用来记录二十六个大写字母出现次数的数组,初始化为0
    gets(str);                           //输入字符串
    pstr = str;                          //指针指向这个数组
    while(*pstr != '\0')                 //循环到结束标志
    {
        if(*pstr >= 'A' && *pstr <= 'Z') //从A到Z的范围
        {
            zimu[*pstr - 'A'] += 1;      //无论哪个字母,减去A的ascii码就是从0~26的数字了
        }
        pstr++;
    }
    for(int i = 0; i < 26; i++)
    {
        printf("%d ",zimu[i]);
    }
 
    return 0;
}

有帮助的话采纳一下哦!