Top.Mail.Ru
Ответы

Функция pos в паскале

Функция ищет вхождение подстроки в строку и возвращает позицию.
А если вхождений несколько?
По сути интересует то как найти позиции всех вхождений подстроки в строку?

По дате
По рейтингу
Аватар пользователя
Новичок
14лет

Ищите 1-е вхождение, потом обрезаете строку и ищите 2-е, потом снова обрезаете и ищите 3-е, и т. д.
Все это в цикле, который прерывается, если pos=0
Можно через рекурсию.

Аватар пользователя
Мастер
14лет

смотри хелп. там интересно так
while pos(...) do delete(pos()....)
мне это тоже досих пор непонятно )))

незамарачуйся, лучше сохрани все вхождения в массив, а потом уже делай...

Аватар пользователя
Ученик
14лет

напиши свою функцию
RecurrentPos
слово такое неприличное, рекурсия, слыхал ?
чтобы возвращала все позиции вхождения

Аватар пользователя
Мастер
14лет

Функция ищет ПЕРВОЕ вхождение подстроки в строку и возвращает позицию.
а для поиска всех вхождений используй цикл:
1. найти вхождение
2. запомнить позицию
3. заменить вхождение на что-либо другое
4. вернуться в п. 1