diff options
Diffstat (limited to 'ft_strlcat.c')
| -rw-r--r-- | ft_strlcat.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/ft_strlcat.c b/ft_strlcat.c new file mode 100644 index 0000000..1274ba5 --- /dev/null +++ b/ft_strlcat.c @@ -0,0 +1,23 @@ +#include "libft.h" + +size_t +ft_strlcat (char *dst, const char *src, size_t size) +{ + size_t dst_len; + size_t src_len; + size_t avail; + + dst_len = ft_strlen (dst); + src_len = ft_strlen (src); + if (dst_len >= size) + return (size + src_len); + avail = size - dst_len - 1; + if (src_len < avail) + ft_memcpy (dst + dst_len, src, src_len + 1); + else + { + ft_memcpy (dst + dst_len, src, avail); + dst[size - 1] = '\0'; + } + return (dst_len + src_len); +} |
