diff options
Diffstat (limited to 'usr/klibc/strcmp.c')
-rw-r--r-- | usr/klibc/strcmp.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/usr/klibc/strcmp.c b/usr/klibc/strcmp.c new file mode 100644 index 0000000..3ab9f5a --- /dev/null +++ b/usr/klibc/strcmp.c @@ -0,0 +1,21 @@ +/* + * strcmp.c + */ + +#include <string.h> + +int strcmp(const char *s1, const char *s2) +{ + const unsigned char *c1 = (const unsigned char *)s1; + const unsigned char *c2 = (const unsigned char *)s2; + unsigned char ch; + int d = 0; + + while (1) { + d = (int)(ch = *c1++) - (int)*c2++; + if (d || !ch) + break; + } + + return d; +} |