/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_split.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: lfirmin +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/22 05:56:37 by lfirmin #+# #+# */ /* Updated: 2024/06/04 12:08:51 by lfirmin ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" static size_t ft_countword(char const *s, char c) { size_t count; if (!*s) return (0); count = 0; while (*s) { while (*s == c) s++; if (*s) count++; while (*s != c && *s) s++; } return (count); } char **ft_split(char const *s, char c) { char **lst; size_t word_len; int i; lst = (char **)malloc((ft_countword(s, c) + 1) * sizeof(char *)); if (!s || !lst) return (0); i = 0; while (*s) { while (*s == c && *s) s++; if (*s) { if (!ft_strchr(s, c)) word_len = ft_strlen(s); else word_len = ft_strchr(s, c) - s; lst[i++] = ft_substr(s, 0, word_len); s += word_len; } } lst[i] = NULL; return (lst); }