1 / 1 / 3
Регистрация: 04.06.2013
Сообщений: 48
1

Посчитать сколько раз встречается каждая буква в тексте

11.06.2013, 21:38. Показов 12677. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! А задача звучит так: есть массив с буквами, и нужно отсортировать таким образом, чтобы в начале массива расположились буквы, которые чаще всего встречаются и т.д., то есть в порядке их частоты использования.

Помогите реализовать, что-то голова вовсе не варит)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.06.2013, 21:38
Ответы с готовыми решениями:

Строка: Посчитать, сколько раз в тексте встречается каждая буква, а также цифры...
Помогите пожалуйста сделать задание.Нужно посчитать,сколько раз в тексте встречается каждая буква,а...

Записать в файл сколько раз в тексте встречается каждая буква
Всем привет, есть наработка но выдаёт ошибку, может кто-то помочь Задание: записать в отдельный...

Посчитать сколько раз встречается каждая буква(русский ввод)
В общем написал исходник , работает не правильно. Подскажите где ошибка. #include <iostream.h>...

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

6
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
11.06.2013, 22:14 2
С помощью STL можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <unordered_map>
#include <string>
#include <algorithm>
 
using namespace std;
 
int main()
{
    string text = "jgjksdghkjsdhgkjadgbasguebueyrgbfyuyfdsvyatfs";
    unordered_map<char, int> chars;
 
    for (auto c : text) ++chars[c];
 
    auto comp = [&chars](char c1, char c2)
        { return chars[c1] > chars[c2]; };
 
    sort( begin(text), end(text), comp );
 
    cout << text;
    return 0;
}
http://ideone.com/odK1Wg
Особого отличия для массива символов не будет.
1
1 / 1 / 3
Регистрация: 04.06.2013
Сообщений: 48
11.06.2013, 22:21  [ТС] 3
А можно как-то проще? Просто у меня VS2010 и половину функций просто не работает..
0
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
11.06.2013, 22:40 4
вот так должно заработать в старом С++:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <map>
#include <string>
#include <algorithm>
 
using namespace std;
 
map<char, int> chars;
 
bool comp(char c1, char c2)
{ return chars[c1] > chars[c2]; };
 
int main()
{
    string text = "jgjksdghkjsdhgkjadgbasguebueyrgbfyuyfdsvyatfs";
        for (int i = 0; i != text.size(); ++i)
                ++chars[ text[i] ];
 
        sort( text.begin(), text.end(), comp );
 
        cout << text;
    return 0;
}
1
1 / 1 / 3
Регистрация: 04.06.2013
Сообщений: 48
11.06.2013, 22:44  [ТС] 5
Спасибо! Теперь все заработало) У меня еще есть пару вопросов: не раз встречал вот такой код:"++chars[ text[i] ];" что означает в данном случае этот инкремент? И можно еще короткий алгоритм к вашей программе?)
0
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
11.06.2013, 22:58 6
chars - это map, соответственно интовое значение с ключом text[i] инкрементируется

Добавлено через 9 минут
имеется, значит map -a способная хрнить элементы только с уникальным ключом, проходим по строке и подсчитываем количество вхождений каждой буквы в стрроке - сии результаты заносятся в map в виде пары "буква" - "количество вхождений ", затем сортируем строку по критерию количества вхождений в строку
1
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
11.06.2013, 22:59 7
1)Последовательно проходим по строке и считаем сколько раз встречается каждый символ. Сохраняем данные в ассоциативном контейнере (ключ (символ) - данные (сколько раз встречается))
2)Сортируем символы в строке в зависимости от того как часто они встречаются (для этого то и писалась функция comp)
1
11.06.2013, 22:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2013, 22:59
Помогаю со студенческими работами здесь

Напечатать таблицу, показывающую, сколько раз в тексте встречается каждая буква алфавита
Написать программу, которая считывает с клавиатуры несколько строк текста и печатает таблицу,...

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

Нужно посчитать сколько раз встречается определенная буква в большом тексте из файла
На вход дается файл с большим текстом. Нужна написать программу, которая считает, сколько раз...

Нужно посчитать сколько раз встречается определенная буква в большом тексте из файла
На вход дается файл с большим текстом. Нужна написать программу, которая считает, сколько раз...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru