finnish the parsing

This commit is contained in:
Maoake Teriierooiterai
2026-01-08 15:04:02 +01:00
parent 9bc53094a9
commit 4af87fa98a
4 changed files with 32 additions and 12 deletions

View File

@@ -22,5 +22,6 @@ int ft_strncmp(const char *s1, const char *s2, int n);
size_t ft_strlen(const char *s); size_t ft_strlen(const char *s);
char *ft_substr(char const *s, unsigned int start, size_t len); char *ft_substr(char const *s, unsigned int start, size_t len);
char **ft_split(char const *s, char c); char **ft_split(char const *s, char c);
void free_tab(char **tab);
#endif #endif

View File

@@ -54,7 +54,7 @@ static size_t len_word(size_t i, char const *s, char c)
return (len); return (len);
} }
static void free_tab(char **tab) void free_tab(char **tab)
{ {
int i; int i;

View File

@@ -16,9 +16,23 @@
static int wich_mod(int mod) static int wich_mod(int mod)
{ {
if (mod == 0 || mod == 3) if (mod == 0)
return (1); return (1);
else if (mod == 1)
return (2); return (2);
else if (mod == 2)
return (3);
return (0);
}
static int len_split(char **tab)
{
int i;
i = 0;
while (tab[i])
i++;
return (i);
} }
static t_stack *parsing(int argc, char **argv, int mod) static t_stack *parsing(int argc, char **argv, int mod)
@@ -47,19 +61,21 @@ static t_stack *parsing(int argc, char **argv, int mod)
return (first); return (first);
} }
static t_stack *special_parsing(int argc, char **argv, int mod) static t_stack *special_parsing(char **argv, int mod)
{ {
t_stacks *piles; t_stack *a;
t_stack *first;
t_stack *new;
char **split_tab; char **split_tab;
int len;
int i; int i;
i = 0; i = mod % 3 + 1;
split_tab = ft_split(arv[wich_mod(mod)]); split_tab = ft_split(argv[i], ' ');
if (!split_tab) if (!split_tab)
return (NULL); return (NULL);
while () len = len_split(split_tab);
a = parsing(len, split_tab, mod);
free_tab(split_tab);
return (a);
} }
t_stacks *init_piles(int argc, char **argv, int mod) t_stacks *init_piles(int argc, char **argv, int mod)
@@ -72,7 +88,10 @@ t_stacks *init_piles(int argc, char **argv, int mod)
stacks->b = NULL; stacks->b = NULL;
if (!stacks) if (!stacks)
return (NULL); return (NULL);
if (mod == 0 || mod == 1 || mod == 2)
a = parsing(argc, argv, mod); a = parsing(argc, argv, mod);
else
a = special_parsing(argv, mod);
stacks->a = a; stacks->a = a;
return (stacks); return (stacks);
} }

View File

@@ -19,7 +19,7 @@
int test1(int argc, char **argv) int test1(int argc, char **argv)
{ {
t_stacks *piles; t_stacks *piles;
//t_tab *preset; t_tab *preset;
piles = NULL; piles = NULL;
if (argc > 1) if (argc > 1)