#include <ctype.h> | |
#include <stddef.h> | |
char *strcasestr(const char *s1, const char *s2) | |
{ | |
const char *s = s1; | |
const char *p = s2; | |
do { | |
if (!*p) | |
return (char *) s1; | |
if ((*p == *s) || | |
(tolower(*p) == tolower(*s))) { | |
++p; | |
++s; | |
} else { | |
p = s2; | |
if (!*s) | |
return NULL; | |
s = ++s1; | |
} | |
} while (1); | |
return *p ? NULL : (char *) s1; | |
} |