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

Найти в строке string наиболее часто встречающуюся пару символов и заменить на один новый символ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка в коде при использовании класов http://www.cyberforum.ru/cpp-beginners/thread162729.html
#include <iostream> #include <fstream> #include <time.h> #include <stdio.h> using namespace std; class Hello { int money, money_prize;; public: Hello()
C++ корректировка уже введенных пользователем данных Работаю в консоли. Пользователю выдаются показатели бух.баланса, после чего проверяется, сошелся баланс или нет (при инициализации переменных им присваивается нулевое значение). Как сделать, чтобы пользователь мог пропустить ввод показателя простым нажатием <Enter> (согласиться с предлагаемым умолчанием или уже введенным им в предыдущий заход значением)? Если я убираю в конце каждой строки... http://www.cyberforum.ru/cpp-beginners/thread162711.html
C++ Переопределение операций
Ситуация такая. В классе матриц переопределён оператор взятия индекса: float operator() (int row, int column) const; Сами данные (элементы матрицы) хранятся в виде одномерного массива, поэтому для простоты нужен этот оператор. В переопределении операции сложения хочу сделать так: result(i,j) = A(i,j)+B(i,j);
Не пишет по-русски C++
Ввожу значения переменных на русском языке, а вместо слов непонятные буквы. Что нужно дописать чтобы понимались русские слова? (Редактор MSVS 2010)
C++ Как создать неопределенное (т.е. не ограниченное в коде) количество экземпляров класса? http://www.cyberforum.ru/cpp-beginners/thread162678.html
Если кратко, опишу задачу так. Есть баланс предприятия - "срез" показателей, который характеризуется рядом параметров (считай, большая таблица с одним столбцом значений). Баланс может рассчитываться по состоянию на любую дату. Нужно проанализировать некоторое количество последовательных балансов (грубо говоря, их может быть до 365*50=18250 экземпляров, хотя реально используется порядка 50,...
C++ обработка исключений Есть вот такой код: #include <iostream> #include <fstream> using namespace std; int _tmain(int argc, _TCHAR* argv) { //Input from file ifstream fin ("input.txt"); подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
01.09.2010, 17:45     Найти в строке string наиболее часто встречающуюся пару символов и заменить на один новый символ
А вот что у меня получилось C++ + STL:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <cstdlib>
#include <map>
#include <string>
#include <algorithm>
 
bool compareMap(const std::pair<std::string, size_t>& a,
                const std::pair<std::string, size_t>& b)
{
    return a.second < b.second;
}
 
int main()
{
    std::string str;
    std::map<std::string, size_t> pairs;
    std::cout << "Input the string to proccess: ";
    std::getline(std::cin, str);
    char c;
    std::cout << "Input the character to replace: ";
    std::cin >> c;
    size_t index = 0;
    while(index != str.size() - 2)
    {
        std::string pair = str.substr(index++, 2);
        if(pair.find(' ') == std::string::npos)
            ++pairs[pair];
    }
    std::map<std::string, size_t>::const_iterator it =
            std::max_element(pairs.begin(), pairs.end(), compareMap);
    std::cout << "Replacing \'" << it->first << "\' with \'" << c << "\'..."
            << std::endl;
    while((index = str.find(it->first)) != std::string::npos)
        str.replace(index, 2, 1, c);
    std::cout << "Proccessed string: \'" << str << "\'" << std::endl;
    return EXIT_SUCCESS;
}
 
Текущее время: 10:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru