mirror of
https://github.com/DavidGailleton/42-Push_Swap.git
synced 2026-01-27 00:41:57 +00:00
finnish the parsing
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
return (2);
|
else if (mod == 1)
|
||||||
|
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);
|
||||||
a = parsing(argc, argv, mod);
|
if (mod == 0 || mod == 1 || mod == 2)
|
||||||
|
a = parsing(argc, argv, mod);
|
||||||
|
else
|
||||||
|
a = special_parsing(argv, mod);
|
||||||
stacks->a = a;
|
stacks->a = a;
|
||||||
return (stacks);
|
return (stacks);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user