blob: fd4618938ff8bfea7dee0c92113d58ca3817bccc (
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
28
|
#include <string.h>
int strncmp(const char *s1, const char *s2, size_t n) {
// The strcmp() function shall compare the string pointed to by s1
// to the string pointed to by s2.
int l1, l2, rc;
l1 = l2 = rc = 0;
for (; (*s1 || *s2) && n > 0; n--) {
if (*s1 != *s2)
rc++;
if (*s1) {
l1++;
s1++;
}
if (*s2) {
l2++;
s2++;
}
}
// Upon completion, strcmp() shall return an integer greater than,
// equal to, or less than 0, if the string pointed to by s1 is
// greater than, equal to, or less than the string pointed to by
// s2, respectively.
if (l2 > l1)
return -rc;
return rc;
}
|