xref: /plan9/sys/src/ape/lib/ap/gen/strstr.c (revision 781103c4074deb8af160e8a0da2742ba6b29dc2b)
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)6 strstr(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