Форум программистов, компьютерный форум CyberForum.ru

Посчитать частоту появления букв в строке - C++

Восстановить пароль Регистрация
 
MerT
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 6
26.01.2010, 01:15     Посчитать частоту появления букв в строке #1
Нужна помощь вот в такой задачке, со строками вообще мыслей ни каких нету((

Посчитать частоту появления букв в строке, если считать равными буквы в верхнем и нижнем регистрах.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
26.01.2010, 01:33     Посчитать частоту появления букв в строке #2
делаешь примерно так (полный код писать не буду - лень):

массив частот букв
size_t freq[256] = {0};

счетчик всех букв
size_t counter = 0;

делаешь цикл по всем буквам в строке. как- неважно. хоть через ( | ), но цикл должен быть
for (size_t i=...)

в цикле проверяешь символ на букву, и есть оно так, увеличиваешь соответствующий счетчик
if (isalpha(str[i])) { ++freq[_toupper(str[i])]; counter++; }

дальше частота появления например буквы A: 100.0 * freq['A'] / counter
MerT
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 6
26.01.2010, 02:43  [ТС]     Посчитать частоту появления букв в строке #3
Немного помогло) Но нужно частоту появления определённой буквы.. тоесть допустим сколько раз в строке встречается буква А
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
26.01.2010, 02:54     Посчитать частоту появления букв в строке #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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 <string>
#include <map>
#include <ctype.h>
 
int main()
{
    std::string s;
    std::cout << "Enter string: ";
    getline(std::cin, s);
 
    char c;
    std::cout << "Enter char: ";
    std::cin >> c;
 
    std::map<char, size_t> hyst;
    size_t i, len = s.length();
    for(i = 0; i < len; i++)
        hyst[toupper(s[i])]++;
    std::cout << c << ": " << hyst[toupper(c)] << " times\n";
    return 0;
}
Yandex
Объявления
26.01.2010, 02:54     Посчитать частоту появления букв в строке
Ответ Создать тему

Метки
Строки
Опции темы

Текущее время: 21:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru