diff options
-rw-r--r-- | include/lib.h | 12 | ||||
-rw-r--r-- | src/lib.c | 11 |
2 files changed, 23 insertions, 0 deletions
diff --git a/include/lib.h b/include/lib.h index b368636..43b95a6 100644 --- a/include/lib.h +++ b/include/lib.h @@ -32,6 +32,18 @@ extern void *memset(void *restrict dest, int c, unsigned long n); extern int strncmp(const char *restrict s1, const char *restrict s2, unsigned long n); /** + * Copys the string pointed to by src , into a string at the buffer pointer to by dest. + * The dest buffer must be long enough to hold src. + */ +extern char *strcpy(char *restrict dest, const char *restrict src); + +/** + * Copys the string pointed to by src , into a string at the buffer pointer to by dest. + * The dest buffer must be long enough to hold src or size n. + */ +extern char *strncpy(char *restrict dest, const char *restrict src, unsigned long n); + +/** * @returns 1 if c is a space */ extern int isspace(int c); @@ -43,6 +43,17 @@ int strncmp(const char *restrict lhs, const char *restrict rhs, unsigned long n) return *l - *r; } +char *strcpy(char *restrict dest, const char *restrict src) { + for(; (*dest = *src); dest++, src++); + return dest; +} + +char *strncpy(char *restrict dest, const char *restrict src, unsigned long n) { + for(; (*dest = *src) && n; dest++, src++, n--); + memset(dest, 0, n); + return dest; +} + int isspace(int c) { switch (c) { case ' ': |