powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Работа со строками
8 сообщений из 8, страница 1 из 1
Работа со строками
    #34135746
imnoob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуй, All! 1) Не подскажете, как лучше организовать такую задачу: в строке s1 заменить все вхождения подстроки s2 на подстроку s3? Ф-ей strstr() находится только первое вхождение, а как сделать, чтобы находились все? 2) Или лучше использовать массивный метод перебора и определения вхождения? Если можно, пример кода
...
Рейтинг: 0 / 0
Работа со строками
    #34135856
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
находишь сначала первое вхождение, потом второе, потом - по желанию - третье, ну и если совсем маньяк - четвёртое.
...
Рейтинг: 0 / 0
Работа со строками
    #34135886
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Находишь первое. Запоминаешь, где нашел. Заменяешь. То что запомнил апдейтишь в соответствии с разницей длин строк заменяемой и заменяющей. А далее по принципу maXmo. :)
...
Рейтинг: 0 / 0
Работа со строками
    #34135898
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strtok


--------------------------------------------------------------
[подпись с другого сайта]
...
Рейтинг: 0 / 0
Работа со строками
    #34137793
imnoob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В принципе я пока печатал сообщение уже допетрил примерно как это сделать... strstr'ом ищу первое вхождение, заменяю (в цикле), уже замененную строку проверяю снова и снова.. и пока не найду \0 )) Что-то типа рекурсии получается.. а что за ф-ия strtok?
...
Рейтинг: 0 / 0
Работа со строками
    #34137805
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhНаходишь первое. Запоминаешь, где нашел. Заменяешь. То что запомнил апдейтишь в соответствии с разницей длин строк заменяемой и заменяющей. А далее по принципу maXmo. :)
Апдейт для строк в общем случае происходит тяжеловато. Слишком ненужных транзакций по куче , особенно, если length(s2)<>length(s3). Лучше создать новую строку s4 и накапливать в ней строку s1 с учётом изменений. Мой совет не будет казатся странным, если представить, что строка - это небольшой текстовый файл.
...
Рейтинг: 0 / 0
Работа со строками
    #34139982
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton AkhНаходишь первое. Запоминаешь, где нашел. Заменяешь. То что запомнил апдейтишь в соответствии с разницей длин строк заменяемой и заменяющей. А далее по принципу maXmo. :)
Апдейт для строк в общем случае происходит тяжеловато. Слишком ненужных транзакций по куче , особенно, если length(s2)<>length(s3). Лучше создать новую строку s4 и накапливать в ней строку s1 с учётом изменений. Мой совет не будет казатся странным, если представить, что строка - это небольшой текстовый файл.

Да. Согласен. Но чтобы по десять раз не менять размер памяти для целых файлов, то лучше будет придумать какой-нибудь другой алгоритм. Например, сохранение индексов в векторе. После, вычисление размера результирующей строки, и, соответственно, завершающие операции. Но, мне кажется, вопрос стоит не в оптимальности.
...
Рейтинг: 0 / 0
Работа со строками
    #34140334
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strtok здесь ни к селу ни к городу. Оно совсем из другой оперы - разбивка строки на части с помощью разделителей.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Работа со строками
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]