diff options
author | JozanLeClerc <bousset.rudy@gmail.com> | 2020-01-24 16:54:01 +0100 |
---|---|---|
committer | JozanLeClerc <bousset.rudy@gmail.com> | 2020-01-24 16:54:01 +0100 |
commit | a9182eee769cec9d81f11b19844428da28667022 (patch) | |
tree | ef6add01c763a34f618908eddad42efc294ff02c /libft/src/ft_split_redo.c | |
parent | Key defines for compatibility between Linux/Darwin (diff) | |
download | 42-cub3d-a9182eee769cec9d81f11b19844428da28667022.tar.gz 42-cub3d-a9182eee769cec9d81f11b19844428da28667022.tar.bz2 42-cub3d-a9182eee769cec9d81f11b19844428da28667022.tar.xz 42-cub3d-a9182eee769cec9d81f11b19844428da28667022.tar.zst 42-cub3d-a9182eee769cec9d81f11b19844428da28667022.zip |
ft_split redone
Diffstat (limited to '')
-rw-r--r-- | libft/src/ft_split_redo.c | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/libft/src/ft_split_redo.c b/libft/src/ft_split_redo.c deleted file mode 100644 index 1d33dda..0000000 --- a/libft/src/ft_split_redo.c +++ /dev/null @@ -1,101 +0,0 @@ -#include <libft.h> -#include <stddef.h> -#include <stdlib.h> -#include <inttypes.h> - -static size_t -ft_count_words(const char *s, char c) -{ - size_t i; - size_t count; - uint8_t ibool; - - i = 0; - count = 0; - ibool = 1; - while (s[i]) - { - while (s[i] == c && s[i]) - i++; - while (s[i] != c && s[i]) - { - if (ibool == 1) - count++; - ibool = 0; - i++; - } - ibool = 1; - } - return (count); -} - -static size_t -ft_splitlen(const char *str, char c) -{ - size_t i; - - i = 0; - while (str[i] != c && str[i]) - i++; - return (i); -} - -static char - *ft_splitdup(const char *str, char c) -{ - char *word; - size_t i; - - i = 0; - if (!(word = (char*)malloc((ft_splitlen(str, c) + 1) * sizeof(char)))) - return (NULL); - while (str[i] != c && str[i]) - { - word[i] = str[i]; - i++; - } - word[i] = '\0'; - return (word); -} - -static void -ft_splitfree(char **best_split, size_t j) -{ - while (j > 0) - { - free(best_split[j]); - j--; - } - free(best_split); -} - -char - **ft_split(const char *s, char c) -{ - char **best_split; - size_t i; - size_t j; - - i = 0; - j = 0; - if (!(best_split = (char **)malloc((ft_count_words(s, c) + 1) - * sizeof(char *)))) - return (NULL); - while (s[i]) - { - while (s[i] == c && s[i]) - i++; - while (s[i] != c && s[i]) - { - if (!(best_split[j] = ft_splitdup(s + i, c))) - { - ft_splitfree(best_split, j); - return (NULL); - } - i += ft_splitlen(s + i, c); - j++; - } - } - best_split[j] = NULL; - return (best_split); -} |