From 8251da342161767fe203627223ccd4a7026701c6 Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Fri, 4 Sep 2026 11:31:40 -0400 Subject: initial commit. working on tasking --- lib/string.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 lib/string.c (limited to 'lib/string.c') diff --git a/lib/string.c b/lib/string.c new file mode 100644 index 0000000..28436d5 --- /dev/null +++ b/lib/string.c @@ -0,0 +1,50 @@ +#include "string.h" + +void *memset(void *s, int c, size_t n) +{ + for(size_t i = 0; i < n; i++) { + ((char*)s)[i] = c; + } + return s; +} +void *memcpy(void *a, const void *b, size_t n) +{ + for(size_t i = 0; i < n; i++) { + ((char*)a)[i] = ((const char*)b)[i]; + } + return a; +} + +int memcmp(const void *a, const void *b, size_t n) +{ + const char *ca = a; + const char *cb = b; + for(size_t i = 0; i < n; i++) { + if(ca[i] != cb[i]) return ca[i] - cb[i]; + } + return 0; +} + +size_t strlen(const char *s) +{ + size_t i = 0; + for(; s[i]; i++); + return i; +} + +char c_toupper(char c) { + return (c > 0x60 && c < 0x7B) ? (c - 0x20) : c; +} + +char *str_toupper(char *s, size_t n) +{ + for(size_t i = 0; i < n; i++) { + s[i] = c_toupper(s[i]); + } + return s; +} + +int strncmp(const char *s1, const char *s2, size_t n) +{ + return memcmp(s1, s2, n); +} -- cgit v1.2.3