0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 18
|
||||||
1 | ||||||
Замена строки в подстроке на новую строку06.08.2016, 09:58. Показов 4217. Ответов 26
Метки нет (Все метки)
Все доброго времени суток. Я написал программу, которая в строке S ищет подстроку S1 и заменяет ее на строку S2, но написал я эту программу с небольшой помощью интернета Вот код:
Что-то до меня она туговато доходит. Я понял это так, что переменная SecondStringSize должна просто обновлять свое значение пока выполняется цикл ? Разъясните что да как в ней )) Заранее спасибо
0
|
06.08.2016, 09:58 | |
Ответы с готовыми решениями:
26
Замена символа на новую строку Создать новую строку из символов 1-ой заданной строки, которые не входят во вторую заданную строку Замена картинки по подстроке Замена пробелов в подстроке |
7774 / 6544 / 2981
Регистрация: 14.04.2014
Сообщений: 28,565
|
|
06.08.2016, 10:30 | 2 |
А лишняя подстрока в конец не добавляется?
0
|
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 18
|
|
06.08.2016, 10:40 [ТС] | 3 |
nmcf, нет, работает правильно, без лишних добавлений.
0
|
7774 / 6544 / 2981
Регистрация: 14.04.2014
Сообщений: 28,565
|
||||||
06.08.2016, 11:40 | 4 | |||||
Перед циклом должно быть:
0
|
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 18
|
|||||||||||
06.08.2016, 12:05 [ТС] | 5 | ||||||||||
nmcf, я же это сделал в восьмой строке
P.S. Меня больше интересует строка 16:
0
|
88 / 84 / 31
Регистрация: 18.11.2013
Сообщений: 390
|
||||||
06.08.2016, 12:52 | 6 | |||||
это не будет работать на таком тесте:
Кликните здесь для просмотра всего текста
a a aa надо бы уточнить задачу к примеру, какой ответ на таком тесте? Кликните здесь для просмотра всего текста
aaaa aa b справка по find Справка по replace если перед циклом сделать
в 16 строчке у вас ищется строка str1 в подстроке str, которая начинается в SecondStringSize позиции и оканчивается в конце Добавлено через 9 минут более подробный анализ все [a..b] означаю подстроку str с a до b удобно писать [a..b], подразумевается [a..b) не нужно устанавливает позицию, с которой мы начнём искать строку для замены заменяет строчку [SecondStringSize..SecondStringSize+str1.size()] на str2 замечу, что в начале ОБЯЗАТЕЛЬНО заменится ни в чём не виновная строчка [str1.size()..str1.size()*2], даже если она не равна str1 ищет в строке str начиная с позиции SecondStringSize(при чём она может быть за пределами строчки) строку str1, после чего записывает в SecondStringSize позицию первого элемента найденной строки Добавлено через 1 минуту попробуйте тест aabb сс d ваша программа выдаст aad Добавлено через 38 секунд Добавлено через 7 минут Посмотреть наглядно(с дебагом) этот код: Добавлено через 15 секунд ideone Добавлено через 5 минут вот написал правильную реализацию: ideone Конечно она сломается на тесте a a a действует тупо: пока может найти подстроку, заменяет её на нужную Добавлено через 1 минуту Надеюсь помог
1
|
7774 / 6544 / 2981
Регистрация: 14.04.2014
Сообщений: 28,565
|
||||||
06.08.2016, 12:58 | 7 | |||||
0
|
88 / 84 / 31
Регистрация: 18.11.2013
Сообщений: 390
|
|
06.08.2016, 13:00 | 8 |
0
|
nmcf
|
06.08.2016, 13:01
#9
|
Не по теме: Ну опечатка.
0
|
88 / 84 / 31
Регистрация: 18.11.2013
Сообщений: 390
|
|
06.08.2016, 13:09 | 10 |
я всё ещё жду уточнений
что делать в случае, если str1 = "aa", а str2 = "aaa"? Добавлено через 2 минуты у наших решений(а может и у задачи) одна проблема: мы изменяем исходную строчку и пытаемся продолжить с ней работать в то время как str2 может быть равным str, а str1 может встречаться в str Добавлено через 4 минуты кстати можно прибавлять к SecondStringSize str1.size() после каждой замены, и это, наверное, будет работать.
0
|
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 18
|
|
06.08.2016, 13:15 [ТС] | 11 |
Krock21rus, спасибо. Очень помогли )
Я проверил пару раз свой код, и когда он выдал ожидаемый мною результат я обрадовался и не стал тестить с другими вариантами :c Спасибо, что все разъяснили все=) Код реализуется совсем проще, а не так как я перемудрил с ним При вводе: аааа аа b выдает aab
0
|
88 / 84 / 31
Регистрация: 18.11.2013
Сообщений: 390
|
|
06.08.2016, 13:20 | 12 |
Nigmatulin, а должно?
Добавлено через 1 минуту советую запустить на тесте a a aa
0
|
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 18
|
|
06.08.2016, 13:23 [ТС] | 13 |
Нет, мой код работает неверно. Как я и говорил выше, я проверил на нескольких самых простых вариантах код, ответ получился таким, какой я ожидал, и на этом остановился. Не подумал о других вариантах
Добавлено через 1 минуту мой код отказывается работать )
0
|
88 / 84 / 31
Регистрация: 18.11.2013
Сообщений: 390
|
|
06.08.2016, 13:33 | 15 |
это не одно и то же?
Добавлено через 48 секунд Nigmatulin, попробуй aaa a aa и скажи, какой правильный ответ
0
|
06.08.2016, 13:34 | 16 |
Krock21rus, Одно и то же, я просто комментов и саму тему не читал, но раз у вас до сих пор возникают вопросы, то значит у вас что то не получается и поэтому я и написал, что надо использовать replace, чтобы все вопросы исчезли.
0
|
88 / 84 / 31
Регистрация: 18.11.2013
Сообщений: 390
|
|
06.08.2016, 13:37 | 17 |
Ferrari F1, тут есть тема
найти минимум в массиве так вот там всё кипит Добавлено через 39 секунд 104 ответа там уже
1
|
88 / 84 / 31
Регистрация: 18.11.2013
Сообщений: 390
|
|
06.08.2016, 14:16 | 19 |
IGPIGP, прочитайте, пожалуйста, все сообщения
тест aa a aaa будет долго работать
0
|
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 18
|
|
06.08.2016, 14:40 [ТС] | 20 |
Еще вопросик. Какую вы бы могли посоветовать литературу, которая ориентирована на работу со строками и есть ли вообще такая ?
0
|
06.08.2016, 14:40 | |
06.08.2016, 14:40 | |
Помогаю со студенческими работами здесь
20
Для заданной строки сформировать новую строку, состоящую только из цифр, входящих в начальную строку Замена символов верхнего регистра местами и вывод в новую строку Замена текста в n-ой строке и k-ой подстроке Заданы две строки. Построить новую строку, состоящую из символов, которые входят как в одну, так и в другую строку Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |