summaryrefslogtreecommitdiff
path: root/lib/libc/string/strncmp.c
blob: 1675890ae1cfce80be6f888bf4ef92c4a500598d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stddef.h> // for size_t

int strncmp(const char *s1, const char *s2, size_t n)
{
	const unsigned char *p1 = (const unsigned char *)s1;
	const unsigned char *p2 = (const unsigned char *)s2;

	while (n-- > 0) {
		if (*p1 != *p2 || *p1 == '\0')
			return *p1 - *p2;
		p1++;
		p2++;
	}

	return 0;
}