diff --git a/ft_strlcat.c b/ft_strlcat.c index 070abb5..30c1309 100644 --- a/ft_strlcat.c +++ b/ft_strlcat.c @@ -1,7 +1,28 @@ #include "libft.h" -// TODO -// size_t ft_strlcat(char *dst, const char *src, size_t dstsize) -// { -// return (0); -// } +size_t ft_strlcat(char *dst, const char *src, size_t dstsize) +{ + size_t slen; + size_t dlen; + size_t i; + + dlen = 0; + slen = 0; + while (dst[dlen] && dlen < dstsize) + dlen++; + while (src[slen]) + slen++; + if (dlen < dstsize) + { + i = 0; + while (src[i] && dlen + i + 1 < dstsize) + { + dst[dlen + i] = src[i]; + i++; + } + if (dlen + i < dstsize) + dst[dlen + i] = '\0'; + } + + return (dlen + slen); +}