From 8108c8f3ab0462c051426639efd4db1a5769b8e4 Mon Sep 17 00:00:00 2001 From: Mathieu Maret Date: Tue, 20 Nov 2018 17:03:57 +0100 Subject: [PATCH] klibc: add string related func --- core/klibc.c | 32 ++++++++++++++++++++++++++++++++ core/klibc.h | 3 +++ 2 files changed, 35 insertions(+) diff --git a/core/klibc.c b/core/klibc.c index 8ba4cef..930409c 100644 --- a/core/klibc.c +++ b/core/klibc.c @@ -55,3 +55,35 @@ char * itoa( int value, char * str, int base ) } return rc; } + +/* K&R */ +void reverse(char s[]) +{ + int c, i, j; + for (i = 0, j = strlen(s) - 1; i < j; i++, j--) { + c = s[i]; + s[i] = s[j]; + s[j] = c; + } +} + +/* K&R */ +int strlen(char s[]) +{ + int i = 0; + while (s[i] != '\0') + ++i; + return i; +} + +/* K&R + * Returns <0 if s10 if s1>s2 */ +int strcmp(char s1[], char s2[]) +{ + int i; + for (i = 0; s1[i] == s2[i]; i++) { + if (s1[i] == '\0') + return 0; + } + return s1[i] - s2[i]; +} diff --git a/core/klibc.h b/core/klibc.h index 37fd102..2d3634d 100644 --- a/core/klibc.h +++ b/core/klibc.h @@ -4,3 +4,6 @@ void *memcpy(void *dest, const void *src, size_t n); void *memset(void *s, int c, size_t n); char *itoa(int value, char *str, int base); +void reverse(char s[]); +int strlen(char s[]); +int strcmp(char s1[], char s2[]);