summaryrefslogtreecommitdiff
path: root/lib/libc/string/strstr.c
blob: c3e2d5dd36ecb21ec0b25de6597937e0171cb3dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stddef.h>

char *strstr(const char *s1, const char *s2)
{
	const char *p = s1;
	const char *q = s2;

	if (*q == '\0')
		return (char *)p;

	while (*p != '\0') {
		const char *pp = p;
		const char *qq = q;

		while (*pp == *qq && *pp != '\0') {
			pp++;
			qq++;
		}

		if (*qq == '\0')
			return (char *)p;

		p++;
	}

	return NULL;
}