/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_strjoin.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/07/31 12:52:50 by adjoly #+# #+# */ /* Updated: 2023/08/03 16:37:21 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #include #include #include int ft_strlen(char *str) { int i; i = 0; while (str[i]) i++; return (i); } int ft_strlenn(int size, char **strs, char *sep) { int len; int i; i = 0; len = 0; while (i < size) { len += ft_strlen(strs[i]); i++; } len += (ft_strlen(sep) * (size - 1)); return (len); } char *ft_strcat(char *dest, char *src) { int size_dest; unsigned int i; i = 0; size_dest = ft_strlen(dest); while (src[i]) { dest[size_dest + i] = src[i]; i++; } dest[size_dest + i] = '\0'; return (dest); } char *ft_strjoin(int size, char **strs, char *sep) { int len_strs; char *result; int i; i = 0; if (size == 0 || !strs || !sep) { result = malloc(1); *result = 0; return (result); } len_strs = ft_strlenn(size, strs, sep); result = malloc((len_strs + 1) * sizeof(char)); if (result == NULL) return (NULL); result[0] = 0; while (i < size) { ft_strcat(result, strs[i]); if (i < size - 1) ft_strcat(result, sep); i++; } return (result); }