打印句子中每个字符出现次数的程序

时间:2017-02-25 15:27:44

标签: string

我很难解决这个问题。我尝试编写一个程序,显示每个字符出现在句子中的次数。 例如:,,你好"

h-1次

e-1次

l-2次

o-1次

这是我的想法:

ldr r0,=0xEFFFFFF2

但是我的计数器没有正常工作,我也不知道如何修复它。

1 个答案:

答案 0 :(得分:1)

在每个循环迭代中放置counter = 0

for (int i = 0; i < strlen(sentence); i++) {
    counter = 0
    for (int j = 0; j < strlen(sentence); j++) {
        if (letters[j]==sentence[i]) {
            counter++;
            cout << letters[j] << " occurs " << counter << " in the sentence" << endl;
        }
    }
}

这是工作,但更好,只需使用地图:

char sentence[100] = "";    
cin.getline(sentence, 100);
map<char, int> counter;
int len = strlen(sentence);

for (int i = 0; i < len; i++){
   counter[sentence[i]]++;
}
for (map<char,int>::iterator it = counter.begin(); it != counter.end(); it++){
   cout << it->first << " occurs " << it->second << " in the sentence" << endl;
}

为此你应该#include <map>