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

start [/forum/topic.php?fid=57&msg=34140334&tid=2030007]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
167ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 468ms |

| 0 / 0 |
