字母出现频率

1159 字母出现频率

题目描述

从键盘输入一行文本(小于1000字符),统计其中每个英文字母出现的频率,并输出出现过的英文字母及其次数,未出现过的不需要显示。为了简化问题的复杂度,假设在统计过程中不区分字母的大小写,即'A'与'a'被认为是一种字母。

输入描述

/*
先从键盘输入一行文本。以换行符结束。
*/
Studing C Language

输出描述

/*
输出统计结果。
*/
'A':2
'C':1
'D':1
'E':1
'G':3
'I':1
'L':1
'N':2
'S':1
'T':1
'U':2
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

void countnumber(char s[]){
    int len = strlen(s);
    int i =0;
    int counts[26];
    for(i=0;i<26;i++){
       counts[i] = 0;
    }
    for(i=0;i<len;i++){
        if(s[i]>='A' && s[i]<='Z'){
           counts[s[i]-'A']++;
        }
        else if(s[i]>='a' && s[i]<='z'){
            counts[s[i]-'a']++;
        }
    }
    for(i=0;i<26;i++){
        if(counts[i]!=0)
            printf("'%c':%d
",i+'A',counts[i]);
    }
}

int main()
{
   char str[1001]={0};
   gets(str); //可以读取带空格的字符串,回车结束输入
   countnumber(str);
   return 0;
}
原文地址:https://www.cnblogs.com/lwp-nicol/p/14296247.html