From c2bf9fcefbb4453cee271ccd1af9674ad2f3a181 Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 10 Jul 2019 06:41:44 +0200 Subject: c12 start --- c07/ex05/ft_split.c | 55 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 20 deletions(-) (limited to 'c07/ex05') diff --git a/c07/ex05/ft_split.c b/c07/ex05/ft_split.c index da2d7fc..956782f 100644 --- a/c07/ex05/ft_split.c +++ b/c07/ex05/ft_split.c @@ -6,44 +6,59 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/07/08 15:58:03 by cacharle #+# #+# */ -/* Updated: 2019/07/09 09:40:49 by cacharle ### ########.fr */ +/* Updated: 2019/07/09 12:42:21 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ #include +int in_charset(char character, char *charset) +{ + while (*charset) + if (character == *charset++) + return (1); + return (0); +} + int count_segment(char *str, char *charset) { int counter; - int i; - counter = 0; + counter = 1; while (*str) { - i = 0; - while (charset[i]) - if (str++ == charset[i++]) - counter++; + if (in_charset(*str, charset)) + counter++; str++; } return (counter); } -int strlen_until_sep(char *str, char *charset) -{ - -} - -char **ft_split(char *str, char *charset) +char **ft_split(char *str, char *charset) { - char **strs; + char **strs; + char *tmp; + int i; + int j; + int k; - strs = (char**)malloc(sizeof(char*) * count_segment(str, charset)); + strs = (char**)malloc(sizeof(char*) * (count_segment(str, charset) + 1)); printf("%d\n", count_segment(str, charset)); - /*while (*str)*/ - /*{*/ - - /*str++;*/ - /*}*/ + k = 0; + while (*str) + { + i = 0; + while (!in_charset(str[i], charset)) + i++; + tmp = (char*)malloc(sizeof(char) * i); + if (tmp == NULL) + printf("bonjour"); + i = 0; + while (!in_charset(*str, charset)) + tmp[i++] = *str++; + strs[k++] = tmp; + str++; + } + strs[k] = 0; return (strs); } -- cgit