有多组数据统计问题C语言

Description
给定一个字符串,统计09每个数字出现的次数。
Input
有多组数据,每组数据由一个字符串组成。字符串最长不超过100个字符。
Output
字符串中的每个数字出现的次数,并按0
9的顺序输出其次数。输出时每个数占3位宽度。
Sample Input
287482710108488745sj82shf720939jfksj2784df987434fsdf
Sample Output
 2  2  2  0  2  0  0  2  4  0 
1  0  3  2  4  1  0  4  4  3

思路:
1.将字符串排序
2.遍历字符串中的每个元素(数字)头到尾,
终点 (减去) 起点 就是该数字的长度了

供参考:

#include <stdio.h>
int main()
{
    int  num[10] = { 0 }, T, i;
    char str[101] = { 0 };
    scanf("%d", &T);  //输入组数
    getchar();
    while (T--) {
        gets(str);
        for (i = 0; str[i]; i++) {
            if (str[i] >= '0' && str[i] <= '9')
                num[str[i] - '0']++;
        }
        for (i = 0; i < 10; i++) {
            printf("%3d", num[i]);
            num[i] = 0;//复位数组num[],为下组统计做准备。
        }
        if (T)   printf("\n");
    }
    return 0;
}