1 #include <string.h> 2 3 /* Return pointer to first occurrence of s2 in s1, NULL if none */ 4 5 char * strstr(const char * s1,const char * s2)6strstr(const char *s1, const char *s2) 7 { 8 char *p, *pa, *pb; 9 int c0, c; 10 11 c0 = *s2; 12 if(c0 == 0) 13 return (char *)s1; 14 s2++; 15 for(p=strchr(s1, c0); p; p=strchr(p+1, c0)) { 16 pa = p; 17 for(pb=(char *)s2;; pb++) { 18 c = *pb; 19 if(c == 0) 20 return p; 21 if(c != *++pa) 22 break; 23 } 24 } 25 return 0; 26 } 27 28