昨天有朋友去华赛面试,当场考了一个统计字符串中个字符的个数的编程题。我在网上找了下,写的都很扯淡的,至少用C语言的很扯淡的,很多人都只局限于统计字母的个数了。自己也写了一段代码,估计着如果字符串很长而且串中字符的相同率很低的话,这个程序的效率不是很高。


#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define SIZE 256

void main()
{
    char str[SIZE];
    unsigned int i = 0, j = 0;
    int count;
    int flag = 0;

    printf("str:");

    if (!gets(str))
    {
        exit(1);
    }

    for (i = 0; i < strlen(str); i++)
    {
        count = 0;
       
        for (j = 0; j< i; j++)
        {
            flag = 0;
            if(str[j] == str[i])
            {
                flag = 1;
                break;
            }
        }

        if (flag == 1)
            continue;

        for (j = i; j < strlen(str); j++)
        {
            if(str[j] == str[i])
            {
                count++;
            }
        }

        printf("%-3c出现的次数:%3d\n", str[i], count);
    }
}


运行结果截图: