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 8Compares 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#ifdef ANSI_PROTOTYPES 17#include <stddef.h> 18#else 19#define size_t unsigned long 20#endif 21 22int 23strncmp(s1, s2, n) 24 const char *s1, *s2; 25 register size_t n; 26{ 27 register unsigned char u1, u2; 28 29 while (n-- > 0) 30 { 31 u1 = (unsigned char) *s1++; 32 u2 = (unsigned char) *s2++; 33 if (u1 != u2) 34 return u1 - u2; 35 if (u1 == '\0') 36 return 0; 37 } 38 return 0; 39} 40