写一个函数,计算给定的一个字符串里各字母出现的频率

2017-03-03  本文已影响0人  XYZ7
#include <iostream>

#define N 26                //26个字母

using namespace std;

int main(int argc, const char * argv[]) {
    
    string str = "HelloWorld";
    int num[N] = {0};
    
    int strSize = (int)str.size();              //获得字符串长度,避免后面重复计算
    
    for(int i = 0;i < str.size() ; i++) {
        if('A' <= str[i] && str[i] <= 'Z')      //字母为大写
            num[str[i] - 'A']++;
        else if('a' <= str[i] && str[i] <= 'z') //字母为小写
            num[str[i] - 'a']++;
        else {                                  //异常检查,输入的str含有非字母字符直接退出
            cout<<"字符串中包含非字母字符,非法"<<endl;
            return 0;
        }
    }
    
    for(int i = 0;i < N;i++)
        cout<<(char)(i + 'A')<<" : "<<(num[i] * 1.0) / strSize<<endl;   //输出各个字母出现的频率
    
    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读