С использованием функции найти все вхождения подстроки в строке - C (СИ)
Формулировка задачи:
Всем логимыслящим Большой Привет!
Помогите меня избавить от страданий написать программу...Лайками обеспечу!
Функция находит в строке заданную подстроку и возвращает указатель на нее. С использованием функции найти все вхождения подстроки в строке.
Решение задачи: «С использованием функции найти все вхождения подстроки в строке»
textual
Листинг программы
char *strstr(char *s1,char *s2)
{
char *p,*q,*t;
p=s1;
while(*p) //продолжать пока не закончится первая строка
{
q=s2; //начало второй строки
for(;*p&&*p!=*q;p++); //поиск первого символа второй строки в первой строке
if(!*p) return NULL; //Если первая строка закончилась, то вторая не входит
t=p; //запомнить начало возможного вхождения
for(;*p&&*q&&*p==*q;p++,q++); //проверка вхождения
if(!*q)return t; //если вторая входит в первую, вернуть указатель вхождения
if(!*p) return NULL; ////Если первая строка закончилась, то вторая не входит
p=t+1; //продолжить поиск вхождения
}
}