split rendu plus lisible avec function free a part
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2019/12/04 15:51:26 by hulamy #+# #+# */
|
/* Created: 2019/12/04 15:51:26 by hulamy #+# #+# */
|
||||||
/* Updated: 2019/12/04 15:51:28 by hulamy ### ########.fr */
|
/* Updated: 2019/12/04 16:26:37 by hulamy ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@@ -88,6 +88,13 @@ static int count(char const *s, char c)
|
|||||||
return (words);
|
return (words);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void *ft_free(char **array)
|
||||||
|
{
|
||||||
|
while (array)
|
||||||
|
free(array++);
|
||||||
|
return (NULL);
|
||||||
|
}
|
||||||
|
|
||||||
char **ft_split(char const *s, char c)
|
char **ft_split(char const *s, char c)
|
||||||
{
|
{
|
||||||
char **array;
|
char **array;
|
||||||
@@ -97,18 +104,15 @@ char **ft_split(char const *s, char c)
|
|||||||
w = 0;
|
w = 0;
|
||||||
if (!s || !c || !(array = malloc(sizeof(char *) * (count(s, c) + 1))))
|
if (!s || !c || !(array = malloc(sizeof(char *) * (count(s, c) + 1))))
|
||||||
return (NULL);
|
return (NULL);
|
||||||
while (*s && !(len = 0))
|
while (*s)
|
||||||
{
|
{
|
||||||
|
len = 0;
|
||||||
if (*s != c)
|
if (*s != c)
|
||||||
{
|
{
|
||||||
while (s[len] && s[len] != c)
|
while (s[len] && s[len] != c)
|
||||||
len++;
|
len++;
|
||||||
if (!(array[w++] = ft_substr(s, 0, len)))
|
if (!(array[w++] = ft_substr(s, 0, len)))
|
||||||
{
|
return (ft_free(array));
|
||||||
while (array)
|
|
||||||
free(array++);
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
s += len ? len : 1;
|
s += len ? len : 1;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user