Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

06.08.2016, 09:58. Просмотров 871. Ответов 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 должна просто обновлять свое значение пока выполняется цикл ? Разъясните что да как в ней ))
Заранее спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.08.2016, 09:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Замена строки в подстроке на новую строку (C++):

Замена пробелов в подстроке - C++
Мне нужно написать функцию которая будет находить и заменять обычный пробел на нижний, не совсем разобрался с функцией replace, вышло...

Копирование части строки, в новую строку - C++
Здравствуйте, помогите плиз с этой задачей. Заранее спасибо. Копирование в новую строку части исходной, начиная с элемента с заданным...

Из строки вывести некоторые элементы в новую строку - C++
Есть строка string: qqq-www aaa-sss zzz-xxx Должно получиться: qqq aaa zzz

Сформировать новую строку, состоящую из слов исходной строки - C++
задача такая: дана строка состоящая из слов разделенных пробелами сформировать новую строку состоящую из слов исходной строки Пример...

Получить из строк новую строку, содержащюю первые N1 символов строки S1 и последнии N2 символов строки S2 - C++
помогите написать программу на двух разных классах! 2) Даны целые положительные числа N1 и N2 и строки S1 и S2. Получить из этих строк...

Сформировать новую строку, состоящую из символов цифр исходной строки - C++
Вводится строка. Сформировать новую строку, состоящую из символов цифр исходной строки. Полученную строку преобразовать в число.

26
Ferrari F1
619 / 513 / 101
Регистрация: 27.01.2015
Сообщений: 2,979
Записей в блоге: 1
Завершенные тесты: 1
06.08.2016, 13:34 #16
Krock21rus, Одно и то же, я просто комментов и саму тему не читал, но раз у вас до сих пор возникают вопросы, то значит у вас что то не получается и поэтому я и написал, что надо использовать replace, чтобы все вопросы исчезли.
0
Krock21rus
74 / 74 / 19
Регистрация: 18.11.2013
Сообщений: 373
Завершенные тесты: 2
06.08.2016, 13:37 #17
Ferrari F1, тут есть тема
найти минимум в массиве
так вот там всё кипит

Добавлено через 39 секунд
104 ответа там уже
1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3142 / 307
Регистрация: 04.12.2011
Сообщений: 8,673
Записей в блоге: 5
06.08.2016, 13:58 #18
Krock21rus, перед попыткой заменить все подстроки S2 в строке S1 на строку S3 надо обязательно проверить что S2 != S3. Иначе долго это всё будет.
0
Krock21rus
74 / 74 / 19
Регистрация: 18.11.2013
Сообщений: 373
Завершенные тесты: 2
06.08.2016, 14:16 #19
IGPIGP, прочитайте, пожалуйста, все сообщения

тест

aa
a
aaa

будет долго работать
0
Nigmatulin
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 18
06.08.2016, 14:40  [ТС] #20
Еще вопросик. Какую вы бы могли посоветовать литературу, которая ориентирована на работу со строками и есть ли вообще такая ?
0
Krock21rus
74 / 74 / 19
Регистрация: 18.11.2013
Сообщений: 373
Завершенные тесты: 2
06.08.2016, 14:46 #21
Nigmatulin,
Литературу, которая рассказывает о том, как работать со строками в с++?
или про алгоритмы на строках?
советую вам изучить С++ тут
понять, как представляются строки
а их обработку уже придумывать самому
а стандартные функции можно посмотреть тут:
std::string
char*
0
Nigmatulin
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 18
06.08.2016, 14:57  [ТС] #22
Krock21rus, спасибо большое за помощь.
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3142 / 307
Регистрация: 04.12.2011
Сообщений: 8,673
Записей в блоге: 5
06.08.2016, 15:36 #23
Цитата Сообщение от Krock21rus Посмотреть сообщение
IGPIGP, прочитайте, пожалуйста, все сообщения
Не нашёл. S3 не должна быть подстрокой S2. Если покажете, где это было буду благодарен.

Не по теме:

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

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

0
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
отсылка в тему, в которой до сих пор возникают вопросы
1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3142 / 307
Регистрация: 04.12.2011
Сообщений: 8,673
Записей в блоге: 5
06.08.2016, 18:16 #25
Цитата Сообщение от Krock21rus Посмотреть сообщение
наоборот
ну как-то около чего-то там...
Цитата Сообщение от Krock21rus Посмотреть сообщение
до сих пор
Понятно.
0
gazlan
3133 / 1909 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
06.08.2016, 18:27 #26
Цитата Сообщение от Nigmatulin Посмотреть сообщение
посоветовать литературу, которая ориентирована на работу со строками
Гасфилд Д. "Строки, деревья и последовательности в алгоритмах"
Билл Смит "Методы и алгоритмы вычислений на строках"
1
Изображения
  
Krock21rus
74 / 74 / 19
Регистрация: 18.11.2013
Сообщений: 373
Завершенные тесты: 2
06.08.2016, 18:33 #27
Цитата Сообщение от Nigmatulin Посмотреть сообщение
литературу, которая ориентирована на работу со строками
http://e-maxx.ru/algo/
там есть раздел "Строки"
0
06.08.2016, 18:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.08.2016, 18:33
Привет! Вот еще темы с ответами:

Сформировать новую строку повторив каждый символ заданной строки дважды - C++
1. Дана строка символов. Сформировать новую строку, повторив каждый символ заданной строки дважды, начиная с конца строки (если заданная...

Сформировать из данной строки новую строку, удалив все кратные символы - C++
написать программу на си: дана строка АААВВСС, сформировать из нее новую строку АВС,удалив все кратные элементы. заранее спасибо)

Табуляция, переход на новую строку, конец строки и прочие подобные действия. endl; \n; - C++
Я запутался в этих знаках. Чем они отличаются и почему их часто ставят в разных местах строки? Иногда в начале строки, иногда в конце?...

Составить новую строку из всех гласных латинских букв исходной строки без повторений - C++
доброго времени суток. прошу помоч знающих людей. вобщем задание такое.. есть строка, выбрать из нее все латинские гласные буквы и...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

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