blob: 399ebc21893e03fc9f1aa746413f26fc9fe04b1f (
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
29
30
31
|
#include <ctype.h>
#include <strings.h>
int strcasecmp(const char *s1, const char *s2) {
// 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);) {
if (tolower(*s1) != tolower(*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;
}
|