
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.11.2006, 11:14
|
|||
|---|---|---|---|
|
|||
Работа со строками |
|||
|
#18+
Здравствуй, All! 1) Не подскажете, как лучше организовать такую задачу: в строке s1 заменить все вхождения подстроки s2 на подстроку s3? Ф-ей strstr() находится только первое вхождение, а как сделать, чтобы находились все? 2) Или лучше использовать массивный метод перебора и определения вхождения? Если можно, пример кода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.11.2006, 11:39
|
|||
|---|---|---|---|
Работа со строками |
|||
|
#18+
находишь сначала первое вхождение, потом второе, потом - по желанию - третье, ну и если совсем маньяк - четвёртое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.11.2006, 11:45
|
|||
|---|---|---|---|
Работа со строками |
|||
|
#18+
Находишь первое. Запоминаешь, где нашел. Заменяешь. То что запомнил апдейтишь в соответствии с разницей длин строк заменяемой и заменяющей. А далее по принципу maXmo. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.11.2006, 11:46
|
|||
|---|---|---|---|
Работа со строками |
|||
|
#18+
strtok -------------------------------------------------------------- [подпись с другого сайта] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.11.2006, 19:06
|
|||
|---|---|---|---|
|
|||
Работа со строками |
|||
|
#18+
В принципе я пока печатал сообщение уже допетрил примерно как это сделать... strstr'ом ищу первое вхождение, заменяю (в цикле), уже замененную строку проверяю снова и снова.. и пока не найду \0 )) Что-то типа рекурсии получается.. а что за ф-ия strtok? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.11.2006, 19:18
|
|||
|---|---|---|---|
Работа со строками |
|||
|
#18+
AkhНаходишь первое. Запоминаешь, где нашел. Заменяешь. То что запомнил апдейтишь в соответствии с разницей длин строк заменяемой и заменяющей. А далее по принципу maXmo. :) Апдейт для строк в общем случае происходит тяжеловато. Слишком ненужных транзакций по куче , особенно, если length(s2)<>length(s3). Лучше создать новую строку s4 и накапливать в ней строку s1 с учётом изменений. Мой совет не будет казатся странным, если представить, что строка - это небольшой текстовый файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.11.2006, 09:53
|
|||
|---|---|---|---|
Работа со строками |
|||
|
#18+
mayton AkhНаходишь первое. Запоминаешь, где нашел. Заменяешь. То что запомнил апдейтишь в соответствии с разницей длин строк заменяемой и заменяющей. А далее по принципу maXmo. :) Апдейт для строк в общем случае происходит тяжеловато. Слишком ненужных транзакций по куче , особенно, если length(s2)<>length(s3). Лучше создать новую строку s4 и накапливать в ней строку s1 с учётом изменений. Мой совет не будет казатся странным, если представить, что строка - это небольшой текстовый файл. Да. Согласен. Но чтобы по десять раз не менять размер памяти для целых файлов, то лучше будет придумать какой-нибудь другой алгоритм. Например, сохранение индексов в векторе. После, вычисление размера результирующей строки, и, соответственно, завершающие операции. Но, мне кажется, вопрос стоит не в оптимальности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&tablet=1&tid=2030007]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
195ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 446ms |

| 0 / 0 |
