/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_strjoin.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbaconni +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/08/19 11:25:51 by gbaconni #+# #+# */ /* Updated: 2021/08/20 09:52:49 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #include #include #include static int ft_strlen(char *str) { int len; len = 0; while (str[len] != '\0') len++; return (len); } char *ft_strcat(char *dest, char *src) { char *s1; char *s2; s1 = dest; s2 = src; while (*s1 != '\0') s1++; while (*s2 != '\0') *s1++ = *s2++; *s1 = '\0'; return (dest); } int ft_strslen(int size, char **strs, char *sep) { int len; int i; len = 1; i = 0; while (i < size) { len += ft_strlen(strs[i]); if (i < size - 1) len += ft_strlen(sep); i++; } return (len); } char *ft_strjoin(int size, char **strs, char *sep) { char *str; int len; int i; if (strs == NULL) return (NULL); len = ft_strslen(size, strs, sep); str = (char *) malloc(len * sizeof(char)); i = 0; while (i < size) { ft_strcat(str, strs[i]); if (i < size - 1) ft_strcat(str, sep); i++; } strs[i] = "\0"; return (str); }