Перейти к содержимому

Фотография

Найти 2,3 ...последнее вхождение одной строки в другую


  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 SD_KOROLEV

SD_KOROLEV

    Активный участник

  • Members
  • PipPip
  • 111 сообщений
  • Город:Королев

Отправлено 01 февраля 2008 - 12:14

strstr returns the first occurrence of one string in another.

Как найти 2,3 ...последнее вхождение одной строки в другую ?
  • 0

#2 mangazey

mangazey

    Активный участник

  • Members
  • PipPip
  • 75 сообщений

Отправлено 01 февраля 2008 - 12:31

strstr returns the first occurrence of one string in another.

Как найти 2,3 ...последнее вхождение одной строки в другую ?


В общем виде ответ будет такой - Для того чтобы найти N-ое вхождение одной строки в другую, надо вызвать функцию strstr с позиции, которая следует за (N-1) вхождением.

Пример:

После выполнения такого кода:
char *p;
p = strstr("abcabcabc", "abc");
указатель p будет содержать 1-ое вхождение искомой строки ("abc").

Теперь если вызовем
p = strstr(p + 1, "abc");
то теперь указатель будет указывать на 2-ое вхождение.

Если еще раз выполнить
p = strstr(p + 1, "abc");
то на 3-е вхождение и т.д.

Всё :) Заверните это в цикл и будет вам благодать :)
Только не забудьте добавить проверку, что искомая строка каждый раз найдена успешно (в этом случае p != NULL)

А последнее вхождение ищется просто.
Это вхождение, после которого ничего не найдено, т.е. p == NULL
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных