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

В тексте заменить слова "компьютер" на "к*******р" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Преобразовать string в complex http://www.cyberforum.ru/cpp-beginners/thread1506040.html
Добрый день! Вот такая простая задачка имеется. string S="(1.00000 -2.12363e-09)"; complex cnum;Требуется избавиться от скобок, а числа поместить в cnum соответственно. Как бы это поэлегантнее сделать?
C++ Srand в карточной игре подскажите как сделать так что бы srand выдавал числа в диапазоне от 1 до 36 без повторов можно ли это сделать без массивов ? делаю задание ( создать игру 21) это для понимания для чего мне это нужно мне нужно что бы ни игроку ни компьютеру не попадались карты которые уже были пишу в visual studio http://www.cyberforum.ru/cpp-beginners/thread1506000.html
C++ Стоит ли читать "Программирование. Принципы и практика использования C++" от Страуструпа
Доброго времени суток. Сейчас лето, сессия позади, но не хочется проводить время впустую, а заняться более активным изучением C++. На лекциях нам давали информацию из учебника Павловской Т.А., задания для практического изучения из практикума соответствующего автора. За время обучения, мы изучили первую главу (циклы, ветвления, массивы, матрицы, указатели, работа с типом char, структуры,...
Определить, насколько случайное число случайно C++
Учебная программа определяющая насколько случайное число случайно. из книги Оверленд Брайэн -С++ без страха. Я вставил директиву int hits; чтобы можно было работать с любым заданным числом. И вот я задаю массив новым способом .используя директиву.int hits; ,но почему то как был массив из 10 элементов так таким и остался..(то есть 10 элементов.).#include <iostream> #include <cmath> #include...
C++ Как добавить дополнительный член в структуру? http://www.cyberforum.ru/cpp-beginners/thread1505981.html
Здравствуйте в wxDev C++ версия 7.3.1.3 Есть программа в ней структура из 4 элементов(членов), в один элемент созданной структуры присваевается значение функции с указателем в качестве параметра функции, в этой функции вычисляется другая функция её значение передается через указатель наружу. программа компилируеться, запускается все Ок, НО если добавить 5 элемент(член) в структуру, потом...
C++ Можно ли написать более оптимальный код, используя цикл while? собственно сабж. #include <iostream> using namespace std; int main() { int x, y, s, step = 1; cout << "Vvedite x" << endl; подробнее

Показать сообщение отдельно
EVP
321 / 243 / 43
Регистрация: 14.12.2010
Сообщений: 464
06.08.2015, 23:38     В тексте заменить слова "компьютер" на "к*******р"
Цитата Сообщение от AleK135 Посмотреть сообщение
Надо изменить текст- то есть слово компьютер на к*******р
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
#include <string>
#include <set>
#include <algorithm>
#include <iterator>
#include <locale>
 
std::pair<std::string::iterator,std::string>
findAny(const std::set<std::string>& _words, std::string::iterator _from, std::string::iterator _end)
{
    auto result = _end;
    std::string word;
    for (auto& w : _words)
    {
        auto iter = std::search(_from, _end, w.begin(), w.end());
        if (result > iter)
            result = iter, word = w;
    }
    return std::make_pair(result,word);
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    std::string text = "Надо изменить текст- то есть слово компьютер на компьютер.";
    std::set<std::string> words;
    words.insert("компьютер");
    //words.insert("текст");
    //words.insert("слово");
    
    std::cout << text << std::endl;
 
    std::string newText;
    auto out_it = std::back_inserter(newText);
    {
        auto from = text.begin();
        while (from != text.end())
        {
            auto pair = findAny(words, from, text.end());
            if (pair.first == text.end())
            {
                std::copy(from, text.end(), out_it);
                from = text.end();
            }
            else
            {
                std::copy(from, pair.first, out_it);
                *out_it = *pair.second.begin();
                if (pair.second.size() > 2)
                    std::generate_n(out_it, pair.second.size() - 2, []() {return '*'; });
                *out_it = *pair.second.rbegin();
                from = pair.first + pair.second.size();
            }
        }
    }
 
    std::cout << newText << std::endl;
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru