0
|
1 /* strncmp -- compare two strings, stop after n bytes.
|
|
2 This function is in the public domain. */
|
|
3
|
|
4 /*
|
|
5
|
|
6 @deftypefn Supplemental int strncmp (const char *@var{s1}, const char *@var{s2}, size_t @var{n})
|
|
7
|
|
8 Compares the first @var{n} bytes of two strings, returning a value as
|
|
9 @code{strcmp}.
|
|
10
|
|
11 @end deftypefn
|
|
12
|
|
13 */
|
|
14
|
|
15 #include <ansidecl.h>
|
|
16 #include <stddef.h>
|
|
17
|
|
18 int
|
|
19 strncmp(const char *s1, const char *s2, register size_t n)
|
|
20 {
|
|
21 register unsigned char u1, u2;
|
|
22
|
|
23 while (n-- > 0)
|
|
24 {
|
|
25 u1 = (unsigned char) *s1++;
|
|
26 u2 = (unsigned char) *s2++;
|
|
27 if (u1 != u2)
|
|
28 return u1 - u2;
|
|
29 if (u1 == '\0')
|
|
30 return 0;
|
|
31 }
|
|
32 return 0;
|
|
33 }
|