diff options
| author | Dominik Kaiser | 2024-05-08 13:14:19 +0200 |
|---|---|---|
| committer | Dominik Kaiser | 2024-05-08 13:14:19 +0200 |
| commit | 95ccc46ad62c59e648679acad8b44ba5d4465e3d (patch) | |
| tree | c053e4c692039d151cefa26759bee90d31d8c0a0 /libft/ft_strlcat.c | |
| parent | 42289aa55c7dafe8fffbcdfb0e02f089b7b83afb (diff) | |
| download | pipex-95ccc46ad62c59e648679acad8b44ba5d4465e3d.tar.gz pipex-95ccc46ad62c59e648679acad8b44ba5d4465e3d.zip | |
Diffstat (limited to 'libft/ft_strlcat.c')
| -rw-r--r-- | libft/ft_strlcat.c | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/libft/ft_strlcat.c b/libft/ft_strlcat.c new file mode 100644 index 0000000..d49dfad --- /dev/null +++ b/libft/ft_strlcat.c @@ -0,0 +1,72 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlcat.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/03/06 13:36:59 by dkaiser #+# #+# */ +/* Updated: 2024/03/10 13:15:10 by dkaiser ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +/* size_t ft_strlcat(char *dst, const char *src, size_t dstsize) */ +/* { */ +/* size_t len; */ +/* size_t i; */ + +/* if (dstsize == 0) */ +/* return (0); */ +/* len = 0; */ +/* while (len < dstsize - 1 && dst[len] != '\0') */ +/* { */ +/* len++; */ +/* } */ +/* i = 0; */ +/* while (len < dstsize - 1 && src[i] != '\0') */ +/* { */ +/* dst[len] = src[i]; */ +/* len++; */ +/* i++; */ +/* } */ +/* dst[len] = '\0'; */ +/* return (len); */ +/* } */ + +size_t ft_strlcat(char *dst, const char *src, size_t dstsize) +{ + size_t src_len; + size_t dst_len; + size_t i; + + src_len = 0; + while (src[src_len]) + src_len++; + dst_len = 0; + while (dst[dst_len]) + dst_len++; + if (dst_len >= dstsize) + return (dstsize + src_len); + i = 0; + while (i < src_len && dst_len + i < dstsize - 1) + { + dst[dst_len + i] = src[i]; + i++; + } + dst[dst_len + i] = '\0'; + return (dst_len + src_len); +} + +/* #include <stdio.h> */ +/* int main () { */ +/* char dst[12] = "Hello "; */ +/* char dst2[12] = "Hello "; */ +/* char src[] = "World123"; */ + +/* size_t len = strlcat(dst, src, 12); */ +/* size_t len2 = ft_strlcat(dst2, src, 12); */ +/* printf("strlcat (%zu): %s\n", len, dst); */ +/* printf("ft_strlcat (%zu): %s\n", len2, dst2); */ +/* } */ |
