diff --git a/ft_strlcpy.c b/ft_strlcpy.c new file mode 100644 index 0000000..8fdb5cb --- /dev/null +++ b/ft_strlcpy.c @@ -0,0 +1,20 @@ +#include "libft.h" + +size_t ft_strlcpy(char *dst, const char *src, size_t dstsize) +{ + size_t length; + size_t i; + + i = 0; + length = ft_strlen(src); + if (dstsize > 0) + { + while (dstsize - 1 > i && src[i]) + { + dst[i] = src[i]; + i++; + } + dst[i] = '\0'; + } + return (length); +} diff --git a/libft.h b/libft.h index 4eea45d..18c86f4 100644 --- a/libft.h +++ b/libft.h @@ -80,4 +80,12 @@ void *ft_memcpy(void *dst, const void *src, size_t n); */ void *ft_memmove(void *dst, const void *src, size_t n); +/* + strlcpy() copies up to dstsize - 1 + characters from the string src to + dst, NUL-terminating the result if + dstsize is not 0. +*/ +size_t ft_strlcpy(char *dst, const char *src, size_t dstsize); + #endif