diff options
| author | Franklin Wei <frankhwei536@gmail.com> | 2015-03-02 21:37:44 -0500 |
|---|---|---|
| committer | Franklin Wei <frankhwei536@gmail.com> | 2015-03-02 21:37:44 -0500 |
| commit | a0721b4caa79b81e021678089fde0b8467daa1cd (patch) | |
| tree | 56af15c29704cc4c6738345ccd6c9db3782fd8d1 /libc/string.c | |
| parent | 46e94578765d3d2f03b83421d752e5dfc3e56d34 (diff) | |
| download | kappa-master.zip kappa-master.tar.gz kappa-master.tar.bz2 kappa-master.tar.xz | |
Diffstat (limited to '')
| -rw-r--r-- | libc/string.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/libc/string.c b/libc/string.c index 11d398f..290aec4 100644 --- a/libc/string.c +++ b/libc/string.c @@ -2,7 +2,7 @@ #include <stddef.h> #include "string.h" -int strlen(const char *str) +size_t strlen(const char *str) { int len = 0; while(*str++) @@ -25,3 +25,23 @@ void* memcpy(void *dest, void *src, size_t sz) *(char*)dest++ = *(char*)src++; return dest; } + +char* strdup(const char *str) +{ + int len = strlen(str); + /* allocate room for the string and it's NULL terminator */ + char *ret = malloc(len + 1); + memcpy(ret, str, len + 1); + return ret; +} + +char* strncat(char *dest, const char *src, size_t n) +{ + /* save this for the return */ + char *d = dest; + while(*dest++); + while(n && (*dest++ = *src++)) --n; + if(*dest) + *dest = '\0'; + return d; +} |