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

Замена строки в подстроке на новую строку - 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++
Здравствуйте, пишу класс обработки массивов. Некорректно работают перегруженные оператора "+" и "=". При использовании оператора + - результат корректный, но программка виснет, а при "=" - выводит мусор. Уже несколько часов пишу его, и сейчас не могу понять в чем проблема... Прошу помощи. #include <iostream> #include <cstdlib> using namespace std;
C++ Удалить последний символ в массиве char
Здравствуйте, подскажите как удалить последний символ в массиве char ? Размер массива узнаю так: Text Добавлено через 3 минуты Нашел такую функцию: char* func(char* str, size_t n) { int len = strlen(str)-n; if(len>0)
C++ Dynamic_cast реализация http://www.cyberforum.ru/cpp-beginners/thread1790322.html
Добрый вечер, есть застоявшаясь фраза: "dynamic_cast<Type*>( pointer ) очень медленное, его лучше не использовать" . Примерная реализация данного оператора это внедрение в VTABLE метода virtual std::string type() const, ну и само приведение типа через dynamic_cast стоит: 1) обращение к полу VTABLE 2) вызов метода 3) сравнение строки: вызов 1-10 сравнений типов char Учитывая, что...
C++ Типы данных: постоянно выходят логические ошибки Помогите пожалуйста с реализацией.Постоянно выходят логические ошибки подробнее

Показать сообщение отдельно
Krock21rus
73 / 73 / 19
Регистрация: 18.11.2013
Сообщений: 369
Завершенные тесты: 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 минуту
Надеюсь помог
 
Текущее время: 11:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru