1/* Simple implementation of strstr for systems without it. 2 This function is in the public domain. */ 3 4/* 5 6@deftypefn Supplemental char* strstr (const char *@var{string}, const char *@var{sub}) 7 8This function searches for the substring @var{sub} in the string 9@var{string}, not including the terminating null characters. A pointer 10to the first occurrence of @var{sub} is returned, or @code{NULL} if the 11substring is absent. If @var{sub} points to a string with zero 12length, the function returns @var{string}. 13 14@end deftypefn 15 16 17*/ 18 19#include <stddef.h> 20 21extern int memcmp (const void *, const void *, size_t); 22extern size_t strlen (const char *); 23 24char * 25strstr (const char *s1, const char *s2) 26{ 27 const size_t len = strlen (s2); 28 while (*s1) 29 { 30 if (!memcmp (s1, s2, len)) 31 return (char *)s1; 32 ++s1; 33 } 34 return (0); 35} 36