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

В строке удалить введённое буквосочетание - C++

Восстановить пароль Регистрация
 
Bubbles
1 / 1 / 0
Регистрация: 28.05.2013
Сообщений: 121
10.06.2013, 11:11     В строке удалить введённое буквосочетание #1
В строке удалить введённое буквосочетание.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
10.06.2013, 11:29     В строке удалить введённое буквосочетание #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string text = "abcHelabclo worabcld abcabc";
    string erasePhrase;
    cin >> erasePhrase;
    size_t pos = string::npos;
    while ( (pos = text.rfind(erasePhrase, --pos)) != string::npos )
        text.erase(pos, erasePhrase.size());
    cout << text;
    return 0;
}
Bubbles
1 / 1 / 0
Регистрация: 28.05.2013
Сообщений: 121
10.06.2013, 11:49  [ТС]     В строке удалить введённое буквосочетание #3
Не пойму как это работает?
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
10.06.2013, 11:51     В строке удалить введённое буквосочетание #4
Ищем текст для удаления с конца текста. Получаем позицию начала этого текста слева. С помощью erase удаляем n символов начиная с данном позиции, где n - длина удаляемой строки. Каждый раз уменьшаем pos, что бы не проверять лишний символ.
Bubbles
1 / 1 / 0
Регистрация: 28.05.2013
Сообщений: 121
10.06.2013, 11:54  [ТС]     В строке удалить введённое буквосочетание #5
Спасибо
Yandex
Объявления
10.06.2013, 11:54     В строке удалить введённое буквосочетание
Ответ Создать тему
Опции темы

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