c++字符串问题求解:3840: 字母个数

题目描述
读入一个字符串,统计里面英文字母a到z出现的次数?(假设所有输入字符都为小写)
输入
输入一行字符,可能包含小写字母、空格和其他字符。
输出
输出包括一行,包含所有字符个数不为零的字符及其个数,每项之间用空格隔开。
样例
输入
our school is very beautiful.
输出
a:1 b:1 c:1 e:2 f:1 h:1 i:2 l:2 o:3 r:2 s:2 t:1 u:3 v:1 y:1

开一个长度是26的数组,每一个元素存储次数,比如数组的第一个元素存储a出现的次数,第二个元素存储b出现的次数,然后遍历字符串,让数组元素++即可,最后输出的时候遍历这个数组,将不为0的输出出来

不会说思路,只会贴代码。

#include<stdio.h>
int main()
{
    char str[100];
    int i=0,num[26] = {0};
    gets_s(str,100);
    //scanf_s("%[^\n]", str,100);
    while (str[i])
    {
        if (str[i] >= 'a'&&str[i] <= 'z')
            num[str[i] - 'a']++;
        i++;
    }
    for (i = 0; i < 26; i++)
    {
        if (num[i] > 0)
            printf("%c:%d ", i + 'a', num[i]);
    }
    return 0;
}

只要大家告诉我一下做题思路即可,无需代码