strstr returns the first occurrence of one string in another.
Как найти 2,3 ...последнее вхождение одной строки в другую ?
Найти 2,3 ...последнее вхождение одной строки в другую
Автор SD_KOROLEV, 01 фев 2008 12:14
В теме одно сообщение
#1
Отправлено 01 февраля 2008 - 12:14
#2
Отправлено 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 анонимных