//
// main.cpp
// ex10_7
//
// Created by a007 on 17/12/2.
// Copyright © 2017年 a007. All rights reserved.
//
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
const int NUMBER_OF_LETTERS = 26;
string uniteLowcase(const string &str){ //统一小写(或大写)处理
string test = "";
for (auto c : str) { //对于str中的每个字符
test += tolower(c);
}
return test;
}
void countLetters(const string &s, int counts[], int size){
for (int i = 0; i != size; ++i) { //初始化数组
counts[i] = 0;
}
string test = uniteLowcase(s);
for (auto c : test) {
counts[c - 'a']++;
}
}
void displayCounts(const int counts[]){
for (int i = 0; i != NUMBER_OF_LETTERS; ++i) {
if (counts[i] != 0) {
cout << static_cast<char>(i + 'a') << " : "
<< counts[i] << " times" << endl;
}
}
}
int main(int argc, const char * argv[]) {
string s;
int counts[NUMBER_OF_LETTERS];
cout << "Enter a string: ";
getline(cin, s);
countLetters(s, counts, NUMBER_OF_LETTERS);
displayCounts(counts);
return 0;
}