#include <stdio.h>
/* возвращает указатель на первое вхождение строки b в строку a или NULL */
char *mystrstr(const char *a, const char *b){
const char *pa, *pb;
if ( !a || !b )
return NULL;
for ( ; *a; ++a ){
for ( pa = a, pb = b; *pa && *pa == *pb; ++pa, ++pb )
;
if ( !*pb )
return (char*)a;
}
return NULL;
}
size_t mystrlen(const char *s){
const char *p;
if ( !s )
return 0;
for ( p = s; *p; ++p )
;
return p - s;
}
int main(void){
char s1[BUFSIZ], s2[BUFSIZ], *p;
while ( 1 ){
printf("String 1: ");
if ( !fgets(s1, BUFSIZ, stdin) )
return 1;
s1[mystrlen(s1) - 1] = '\0';
if ( !*s1 )
break;
printf("String 2: ");
if ( !fgets(s2, BUFSIZ, stdin) )
return 1;
s2[mystrlen(s2) - 1] = '\0';
if ( !*s2 )
break;
printf("String 1 %scontain string 2.\n", ( mystrstr(s1, s2)) ? "" : "don't ");
}
return 0;
}