diff options
Diffstat (limited to 'str.c')
-rw-r--r-- | str.c | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -0,0 +1,23 @@ +/* +A better alternative to strncpy. dest is guaranteed to be a null-terminated string +after this function is run. +Returns the number of characters copied to dest, not including the null character. +destsz must be greater than 0. +*/ +size_t str_copy(char *dest, size_t destsz, const char *src) { + assert(destsz); + if (!*src) { + *dest = 0; + return 0; + } + for (size_t i = 0; i < destsz-1; i++) { + *dest = *src; + if (!*src) { + *dest = 0; + return i; + } + src++; dest++; + } + dest[destsz-1] = 0; + return destsz-1; +} |