/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_strjoin.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: whaffman +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/06/17 10:17:32 by whaffman #+# #+# */ /* Updated: 2024/06/20 13:57:12 by whaffman ### ########.fr */ /* */ /* ************************************************************************** */ #include #include #include char *ft_strcat(char *dest, char *src) { char *odest; odest = dest; while (*dest) dest++; while (*src) *dest++ = *src++; *dest = '\0'; return (odest); } int ft_strlen(char *str) { int i; i = 0; while (str[i]) i++; return (i); } int ft_strjoin_len(int size, char **strs, char *sep) { int result; int i; i = 0; result = 0; if (size <= 0) return (0); while (i < size) { result += ft_strlen(strs[i]); i++; } result += (size - 1) * ft_strlen(sep); return (result); } char *ft_strjoin(int size, char **strs, char *sep) { char *result; int length; int i; i = 0; length = ft_strjoin_len(size, strs, sep) + 1; result = (char *) malloc(length * sizeof(char)); if (!result) return ((void *) 0); *result = '\0'; while (i < size) { ft_strcat(result, strs[i]); if (i != size - 1 && ft_strlen(sep) > 0) ft_strcat(result, sep); i++; } return (result); } /* int main(void) { char *strs[3]; char str1[] = "HAllo"; char str2[] = ""; char str3[] = "mwaah"; char sep[] = ", "; strs[0] = &str1[0]; strs[1] = &str2[0]; strs[2] = &str3[0]; printf("%s", ft_strjoin(0, strs, sep)); printf("DONE!"); } */