/* By: ljiriste <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/06/20 11:51:05 by ljiriste #+# #+# */
-/* Updated: 2024/08/01 11:56:05 by ljiriste ### ########.fr */
+/* Updated: 2024/08/02 14:01:23 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
#include "ft_str.h"
#include <stdlib.h>
-size_t substr_len(const char *str, const char *seps)
+static size_t substr_len(const char *str, const char *seps)
{
size_t len;
return (len);
}
-size_t count_valid_strs(const char *str, const char *seps)
+static size_t count_valid_strs(const char *str, const char *seps)
{
size_t i;
size_t str_count;
return (str_count);
}
-char *extract_substr(const char *str, const char *seps)
+static char *extract_substr(const char *str, const char *seps)
{
char *res;
size_t i;
res = malloc((substr_len(str, seps) + 1) * sizeof(char));
+ if (!res)
+ return (NULL);
i = 0;
while (!ft_strchr(seps, str[i]))
{
return (res);
}
+void ft_free_split(char **split)
+{
+ size_t i;
+
+ i = 0;
+ while (split[i])
+ {
+ free(split[i]);
+ ++i;
+ }
+ free(split);
+ return ;
+}
+
char **ft_split(const char *str, const char *seps)
{
char **res;
{
if (!ft_strchr(seps, str[i]))
{
- res[str_num++] = extract_substr(&str[i], seps);
- i += substr_len(&str[i], seps);
+ res[str_num] = extract_substr(&str[i], seps);
+ if (!res[str_num++])
+ {
+ ft_free_split(res);
+ return (NULL);
+ }
+ i += substr_len(&str[i], seps) - 1;
}
- else
- ++i;
+ ++i;
}
res[str_num] = NULL;
return (res);
/* By: ljiriste <ljiriste@student.42prague.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/12/09 11:50:15 by ljiriste #+# #+# */
-/* Updated: 2024/07/21 18:08:41 by ljiriste ### ########.fr */
+/* Updated: 2024/08/02 14:02:44 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
char *ft_strtrim(const char *s1, const char *set);
char *ft_remove_space(const char *str);
char **ft_split(const char *str, const char *seps);
+void ft_free_split(char **split);
char *ft_strmapi(const char *s, char (*f)(unsigned int, char));
void ft_striteri(char *s, void (*f)(unsigned int, char *));