гистограмма — подсчет символов в словах в консольном приложении C ++

Это проблема, которую я пытаюсь решить:

Попросите пользователя ввести кучу слов, сколько они захотят, пока они не введут 0. После
подсчитайте, сколько раз каждая буква встречается во всех словах, и распечатайте список каждой буквы и сколько раз она появляется. Пример:

Enter word> hello
Enter word> lemon
Enter word> goodbye
Enter word> 0
Letter: h appears 1 times
letter: e appears 3 times
...

До сих пор я должен сложить все слова и сделать сравнения. Проблема заключается в том, что после того, как все слова собраны вместе, а 0 введен, я не могу сосчитать каждый отдельный символ в объединенной строке. Я провел некоторые исследования и прочитал, что для этого вам нужны векторы, но я не понимаю, как их использовать.

Я пытался сделать это в течение недели, чтобы понять это правильно, но безрезультатно. C ++ отличается от всех других языков, которые я выучил (по крайней мере, для меня).

1

Решение

Вы можете использовать std::unordered_map, с символами в качестве ключа и счетчиком в качестве значения. Для каждой прочитанной строки просто переберите ее и увеличьте значение, соответствующее символу на карте.

Таким образом, вам не нужно хранить слова.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]