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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сравнение двух std::string на совпадение без учёта регистра http://www.cyberforum.ru/cpp-beginners/thread1790428.html
Нужно сравнить две строки на одинаковость, но без учёта регистра. Чтобы name и Name и NaME считывались как одинаковые. Как это сделать?
C++ Используя функции создать квадратную матрицу Всем доброго времени суток! Помогите разобраться как решить данное задание: "Написать, используя функции, программу, которая создает квадратную матрицу. Первоначальную матрицу нужно повернуть на 90... http://www.cyberforum.ru/cpp-beginners/thread1790425.html
Перегрузка операторов "+" и "=" C++
Здравствуйте, пишу класс обработки массивов. Некорректно работают перегруженные оператора "+" и "=". При использовании оператора + - результат корректный, но программка виснет, а при "=" - выводит...
C++ Удалить последний символ в массиве char
Здравствуйте, подскажите как удалить последний символ в массиве char ? Размер массива узнаю так: Text Добавлено через 3 минуты Нашел такую функцию: char* func(char* str, size_t n) { int...
C++ Dynamic_cast реализация http://www.cyberforum.ru/cpp-beginners/thread1790322.html
Добрый вечер, есть застоявшаясь фраза: "dynamic_cast<Type*>( pointer ) очень медленное, его лучше не использовать" . Примерная реализация данного оператора это внедрение в VTABLE метода virtual...
C++ Типы данных: постоянно выходят логические ошибки Помогите пожалуйста с реализацией.Постоянно выходят логические ошибки подробнее

Показать сообщение отдельно
Krock21rus
74 / 74 / 19
Регистрация: 18.11.2013
Сообщений: 373
Завершенные тесты: 2
06.08.2016, 12:52
это не будет работать на таком тесте:
Кликните здесь для просмотра всего текста

a
a
aa

надо бы уточнить задачу
к примеру, какой ответ на таком тесте?
Кликните здесь для просмотра всего текста

aaaa
aa
b

справка по find
Return Value
The position of the first character of the first match.
возвращает индекс первого элемента в строке
Справка по replace
Цитата Сообщение от nmcf Посмотреть сообщение
Перед циклом должно быть:
* *
C++
1
SecondStringSize = 0;
если перед циклом сделать
C++
1
SecondStringSize = str.find(str1);
то будет более корректно

в 16 строчке у вас ищется строка str1 в подстроке str, которая начинается в SecondStringSize позиции и оканчивается в конце

Добавлено через 9 минут
более подробный анализ говнокода
все [a..b] означаю подстроку str с a до b
удобно писать [a..b], подразумевается [a..b)

Цитата Сообщение от Nigmatulin Посмотреть сообщение
int i=0
не нужно

Цитата Сообщение от Nigmatulin Посмотреть сообщение
SecondStringSize = str1.size();
устанавливает позицию, с которой мы начнём искать строку для замены

Цитата Сообщение от Nigmatulin Посмотреть сообщение
str.replace(SecondStringSize, str1.size(), str2);
заменяет строчку [SecondStringSize..SecondStringSize+str1.size()] на str2
замечу, что в начале ОБЯЗАТЕЛЬНО заменится ни в чём не виновная строчка [str1.size()..str1.size()*2], даже если она не равна str1

Цитата Сообщение от Nigmatulin Посмотреть сообщение
SecondStringSize = str.find(str1, SecondStringSize);
ищет в строке str начиная с позиции SecondStringSize(при чём она может быть за пределами строчки) строку str1, после чего записывает в SecondStringSize позицию первого элемента найденной строки

Добавлено через 1 минуту
попробуйте тест

aabb
сс
d

ваша программа выдаст aad

Добавлено через 38 секунд
Цитата Сообщение от Nigmatulin Посмотреть сообщение
работает правильно


Добавлено через 7 минут
Посмотреть наглядно(с дебагом) этот код:

Добавлено через 15 секунд
ideone

Добавлено через 5 минут
вот написал правильную реализацию: ideone

Конечно она сломается на тесте
a
a
a

действует тупо: пока может найти подстроку, заменяет её на нужную

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