summaryrefslogtreecommitdiff
path: root/lib/libc/string/strstr.c
blob: 1c35e82687c55eba53747a6a77c47455fff83572 (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> // for NULL

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;
}