制作一个计算字母表中每个字母出现次数的程序

时间:2015-12-11 06:38:49

标签: c++

#include <iostream>
#include <algorithm>
#include <iterator>
using namespace std;
string text;
int i;
char x;
int n = 0;
int main(int argc, const char * argv[])
{
    cout << "Enter some text: " << endl;
    getline(cin, text);
    for (x = 'a'; x <= 'z'; x++)
    {
        for (i = 0; i<= text.length(); i++)
        {
            if (text[i] == x)
            {
                n++;
                cout << x << ": " << n << endl;

            }
        }

    }

}

所以我希望它打印出字符串中出现的每个字母的出现,但是,我得到了这个:

输入:你好

输出:

e: 1
h: 2
l: 3
l: 4
o: 5

我理解为什么每次找到一个字母时它都会计数,但是如何让它显示每个字母实际上出现的次数。例如,这就是我想说的:

e: 1
h: 1
l: 2
o: 1

1 个答案:

答案 0 :(得分:0)

在每个循环(x)的开头,你应该将n重置为0.

此外,你应该移动声明

cout << x << ": " << n << endl;

从第二个循环开始,第一个循环结束