C语言 编写程序,从键盘输入若干个英文字母,并统计各字母出现的次数

Python012

C语言 编写程序,从键盘输入若干个英文字母,并统计各字母出现的次数,第1张

#include

#include

#define

max

100

int

main()

{

char

str[max]

//

输入的字符串,最大长度是max-1,因为有一个字符串结束符

int

i

=

0,

count[52]

=

{

0

}

//

count

数组用来存储各个字母出现的次数

scanf("%s",

str)

while(str[i]

!=

'\0')

{

if

(str[i]

>=

'a'

&&

str[i]

<=

'z')

{

//

统计小写字母

count[str[i]

-

97

+

26]++

}

if

(str[i]

>=

'a'

&&

str[i]

<=

'z')

{

//

统计大写字母

count[str[i]

-

65]++

}

i++

}

for

(i

=

0

i

<

26

i++)

{

//

输出大写字母信息

if

(count[i]

!=

0)

printf("%c\t%d\n",

i

+

65,

count[i])

//

只输出不为零的数据

}

for

(i

=

26

i

<

52

i++)

{

//

输出小写字母信息

if

(count[i]

!=

0)

printf("%c\t%d\n",

i

+

97

-

26,

count[i])

}

return

0

}

可以先排序,在遍历统计。

#include <stdio.h>

#include <string.h>

// 升序字符串src,然后返回

char* sort(char *src)

{

    char tem, len = strlen(src)

    for (int i = 0 src[i] i++)

    {

        for (int j = 0 j < len - i - 1 j++)

            if (src[j] > src[j+1])

            {

                tem = src[j]

                src[j] = src[j+1]

                src[j+1] = tem

            }

    }

    return src

}

int main()

{

    char str[1000], ch

    int i = 0, cnt

    printf("input a string :")

    gets(str)

    sort(str)  // 排序

    ch = str[0]

    cnt = 1

    for (i = 1 str[i] i++) // 遍历统计

    {

        if (str[i] != ch)

        {

            if (cnt)

                printf("%c has %d.\n", ch, cnt)

            ch = str[i]

            cnt = 1

        }

        else

            cnt++

    }

    if (cnt)

        printf("%c has %d.\n", ch, cnt)

    return 0

}