/* By: ljiriste <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/06/20 11:51:05 by ljiriste #+# #+# */
-/* Updated: 2023/06/28 21:04:24 by ljiriste ### ########.fr */
+/* Updated: 2024/07/21 18:53:26 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
+#include "ft_str.h"
#include <stdlib.h>
-int is_sep(char c, char *seps)
+size_t substr_len(const char *str, const char *seps)
{
- while (*seps)
- {
- if (c == *seps)
- return (1);
- ++seps;
- }
- return (0);
-}
-
-unsigned int substr_len(char *str, char *seps)
-{
- unsigned int len;
+ size_t len;
len = 0;
- while (!is_sep(str[len], seps))
+ while (!ft_strchr(seps, str[len]))
++len;
return (len);
}
-int count_valid_strs(char *str, char *seps)
+size_t count_valid_strs(const char *str, const char *seps)
{
- int i;
- int str_count;
+ size_t i;
+ size_t str_count;
str_count = 0;
i = 0;
while (str[i])
{
- while (is_sep(str[i], seps) && str[i])
+ while (ft_strchr(seps, str[i]) && str[i])
++i;
++str_count;
- while (!is_sep(str[i], seps) && str[i])
+ while (!ft_strchr(seps, str[i]) && str[i])
++i;
}
return (str_count);
}
-char *extract_substr(char *str, char *seps)
+char *extract_substr(const char *str, const char *seps)
{
char *res;
- int i;
+ size_t i;
res = malloc((substr_len(str, seps) + 1) * sizeof(char));
i = 0;
- while (!is_sep(str[i], seps))
+ while (!ft_strchr(seps, str[i]))
{
res[i] = str[i];
++i;
return (res);
}
-char **ft_split(char *str, char *seps)
+char **ft_split(const char *str, const char *seps)
{
char **res;
- int i;
- int str_num;
- int str_count;
+ size_t i;
+ size_t str_num;
+ size_t str_count;
str_count = count_valid_strs(str, seps);
res = malloc((str_count + 1) * sizeof(char *));
str_num = 0;
while (str[i])
{
- if (!is_sep(str[i], seps))
+ if (!ft_strchr(seps, str[i]))
{
res[str_num++] = extract_substr(&str[i], seps);
i += substr_len(&str[i], seps);
}
++i;
}
- res[str_num] = 0;
+ res[str_num] = NULL;
return (res);
}
/* By: ljiriste <ljiriste@student.42prague.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/12/09 11:50:15 by ljiriste #+# #+# */
-/* Updated: 2024/06/15 08:34:22 by ljiriste ### ########.fr */
+/* Updated: 2024/07/21 18:08:41 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
char *ft_strjoin(const char *s1, const char *s2);
char *ft_strtrim(const char *s1, const char *set);
char *ft_remove_space(const char *str);
-char **ft_split(const char *s, char c);
+char **ft_split(const char *str, const char *seps);
char *ft_strmapi(const char *s, char (*f)(unsigned int, char));
void ft_striteri(char *s, void (*f)(unsigned int, char *));