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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Nigmatulin
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 18
#1

Замена строки в подстроке на новую строку - C++

06.08.2016, 09:58. Просмотров 728. Ответов 26
Метки нет (Все метки)

Все доброго времени суток. Я написал программу, которая в строке S ищет подстроку S1 и заменяет ее на строку S2, но написал я эту программу с небольшой помощью интернета Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
using namespace std;
int main ()
{
    setlocale (0, "");
    string str, str1, str2;
    int i=0, SecondStringSize = 0;
    cout<<"Введите первую строку: "; getline(cin, str);
    cout<<"Введите вторую строку: "; getline(cin, str1);
    cout<<"Введите третью строку: "; getline(cin, str2);
    SecondStringSize = str1.size();
    while (SecondStringSize != string::npos)
    {
        str.replace(SecondStringSize, str1.size(), str2);
        SecondStringSize = str.find(str1, SecondStringSize);
    }
    cout<<"Строка после обработки: "<<str<<endl;
    system("pause");
    return 0;
}
Хотелось бы, что бы мне доходчиво объяснили вот эту строку: SecondStringSize = str.find(str1, SecondStringSize);
Что-то до меня она туговато доходит. Я понял это так, что переменная SecondStringSize должна просто обновлять свое значение пока выполняется цикл ? Разъясните что да как в ней ))
Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.08.2016, 09:58     Замена строки в подстроке на новую строку
Посмотрите здесь:
C++ Замена пробелов в подстроке
C++ Копирование части строки, в новую строку
C++ Из строки вывести некоторые элементы в новую строку
C++ Сформировать новую строку, состоящую из слов исходной строки
Сформировать новую строку, состоящую из символов цифр исходной строки C++
Сформировать из данной строки новую строку, удалив все кратные символы C++
C++ Сформировать новую строку повторив каждый символ заданной строки дважды
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Krock21rus
74 / 74 / 19
Регистрация: 18.11.2013
Сообщений: 373
Завершенные тесты: 2
06.08.2016, 14:46     Замена строки в подстроке на новую строку #21
Nigmatulin,
Литературу, которая рассказывает о том, как работать со строками в с++?
или про алгоритмы на строках?
советую вам изучить С++ тут
понять, как представляются строки
а их обработку уже придумывать самому
а стандартные функции можно посмотреть тут:
std::string
char*
Nigmatulin
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 18
06.08.2016, 14:57  [ТС]     Замена строки в подстроке на новую строку #22
Krock21rus, спасибо большое за помощь.
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6423 / 3062 / 304
Регистрация: 04.12.2011
Сообщений: 8,351
Записей в блоге: 3
06.08.2016, 15:36     Замена строки в подстроке на новую строку #23
Цитата Сообщение от Krock21rus Посмотреть сообщение
IGPIGP, прочитайте, пожалуйста, все сообщения
Не нашёл. S3 не должна быть подстрокой S2. Если покажете, где это было буду благодарен.

Не по теме:

А что раздражает в теме

Цитата Сообщение от Krock21rus Посмотреть сообщение
тут есть тема
найти минимум в массиве
так вот там всё кипит
?

Krock21rus
74 / 74 / 19
Регистрация: 18.11.2013
Сообщений: 373
Завершенные тесты: 2
06.08.2016, 17:09     Замена строки в подстроке на новую строку #24
спойлеры тут
Цитата Сообщение от IGPIGP Посмотреть сообщение
S2 != S3
этого не достаточно
Цитата Сообщение от IGPIGP Посмотреть сообщение
S3 не должна быть подстрокой S2
наоборот

на тесте

a*100000
aa
a

так же
будет работать очень долго

Добавлено через 1 минуту
Цитата Сообщение от IGPIGP Посмотреть сообщение
А что раздражает в теме
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
я просто комментов и саму тему не читал, но раз у вас до сих пор возникают вопросы, то значит у вас что то не получается и поэтому я и написал, что надо использовать replace
отсылка в тему, в которой до сих пор возникают вопросы
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6423 / 3062 / 304
Регистрация: 04.12.2011
Сообщений: 8,351
Записей в блоге: 3
06.08.2016, 18:16     Замена строки в подстроке на новую строку #25
Цитата Сообщение от Krock21rus Посмотреть сообщение
наоборот
ну как-то около чего-то там...
Цитата Сообщение от Krock21rus Посмотреть сообщение
до сих пор
Понятно.
gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
06.08.2016, 18:27     Замена строки в подстроке на новую строку #26
Цитата Сообщение от Nigmatulin Посмотреть сообщение
посоветовать литературу, которая ориентирована на работу со строками
Гасфилд Д. "Строки, деревья и последовательности в алгоритмах"
Билл Смит "Методы и алгоритмы вычислений на строках"
Изображения
  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.08.2016, 18:33     Замена строки в подстроке на новую строку
Еще ссылки по теме:
C++ Табуляция, переход на новую строку, конец строки и прочие подобные действия. endl; \n;
Вставить новую строку после строки, в которой находится первый встречный минимальный элемент C++
Записать в новую строку слова исходной строки, в которых повторяющихся букв больше неповторяющихся C++
Составить новую строку из всех гласных латинских букв исходной строки без повторений C++
C++ Записать в новую строку все слова исходной строки у которых количество букв кратно 3

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

Или воспользуйтесь поиском по форуму:
Krock21rus
74 / 74 / 19
Регистрация: 18.11.2013
Сообщений: 373
Завершенные тесты: 2
06.08.2016, 18:33     Замена строки в подстроке на новую строку #27
Цитата Сообщение от Nigmatulin Посмотреть сообщение
литературу, которая ориентирована на работу со строками
http://e-maxx.ru/algo/
там есть раздел "Строки"
Yandex
Объявления
06.08.2016, 18:33     Замена строки в подстроке на новую строку
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru