ecriture en pseudo code de store
This commit is contained in:
17
ft_printf.c
17
ft_printf.c
@@ -8,17 +8,19 @@ int ft_error(int i)
|
|||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
t_list *ft_store(char *str)
|
t_prist *ft_store(char *str)
|
||||||
{
|
{
|
||||||
t_prist *arglst;
|
t_prist *lst;
|
||||||
t_list *lst;
|
t_prist *lstmp;
|
||||||
char *tmp;
|
char *tmp;
|
||||||
|
|
||||||
//str = "truc: %i, machins:%s\n"
|
//str = "truc: %i, machins:%s\n"
|
||||||
|
str = ft_strdup(str);
|
||||||
|
lst = NULL;
|
||||||
while (*str != '\0')
|
while (*str != '\0')
|
||||||
{
|
{
|
||||||
(*arglst) = (t_prist *)malloc(sizeof(*arglst));
|
lstmp = lst;
|
||||||
lst = ft_lstadd_back(&lst, arglst);
|
(*lst) = (t_prist *)malloc(sizeof(*lst));
|
||||||
if (tmp = strchr(str,%))
|
if (tmp = strchr(str,%))
|
||||||
tmp[0] = '\0'
|
tmp[0] = '\0'
|
||||||
(*arglst)->str = ft_strdup(str);
|
(*arglst)->str = ft_strdup(str);
|
||||||
@@ -26,14 +28,15 @@ t_list *ft_store(char *str)
|
|||||||
if (tmp != NULL)
|
if (tmp != NULL)
|
||||||
tmp[0] = '%';
|
tmp[0] = '%';
|
||||||
str = tmp;
|
str = tmp;
|
||||||
|
lst->next = lstmp;
|
||||||
}
|
}
|
||||||
return (*arglst);
|
return (*lst);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ft_printf(char *string, ...)
|
int ft_printf(char *string, ...)
|
||||||
{
|
{
|
||||||
|
t_prist *lst;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
t_list *lst;
|
|
||||||
|
|
||||||
va_start(ap, string);
|
va_start(ap, string);
|
||||||
lst = ft_store(string);
|
lst = ft_store(string);
|
||||||
|
|||||||
1
libft
1
libft
Submodule libft deleted from e9c7619e97
66
test.c
66
test.c
@@ -1,25 +1,40 @@
|
|||||||
#include <stdarg.h>
|
#include <libc.h>
|
||||||
|
|
||||||
int ft_printf(char *string, ...)
|
//int ft_printf(char *string, ...)
|
||||||
{
|
//{
|
||||||
va_list ap;
|
// va_list ap;
|
||||||
int d;
|
// int d;
|
||||||
char c;
|
// char c;
|
||||||
char *s;
|
// char *s;
|
||||||
|
//
|
||||||
|
// va_start(ap, string);
|
||||||
|
// while (*string != '\0')
|
||||||
|
// {
|
||||||
|
// if (*string == 's')
|
||||||
|
// s = va_arg(ap, char *);
|
||||||
|
// if (*string == 'd')
|
||||||
|
// d = va_arg(ap, int);
|
||||||
|
// if (*string == 'c')
|
||||||
|
// c = va_arg(ap, int);
|
||||||
|
// string++;
|
||||||
|
// }
|
||||||
|
// va_end(ap);
|
||||||
|
// return (0);
|
||||||
|
//}
|
||||||
|
|
||||||
va_start(ap, string);
|
char *ft_strchr(const char *s, int c)
|
||||||
while (*string != '\0')
|
|
||||||
{
|
{
|
||||||
if (*string == 's')
|
int i;
|
||||||
s = va_arg(ap, char *);
|
int j;
|
||||||
if (*string == 'd')
|
|
||||||
d = va_arg(ap, int);
|
i = 0;
|
||||||
if (*string == 'c')
|
j = -1;
|
||||||
c = va_arg(ap, int);
|
while (s[i])
|
||||||
string++;
|
i++;
|
||||||
}
|
while (++j < i + 1)
|
||||||
va_end(ap);
|
if (s[j] == c)
|
||||||
return (0);
|
return ((char *)s + j);
|
||||||
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
@@ -29,6 +44,17 @@ int main(void)
|
|||||||
char c = 'p';
|
char c = 'p';
|
||||||
int i = 9;
|
int i = 9;
|
||||||
|
|
||||||
ft_printf(s, c, str, i);
|
// ft_printf(s, c, str, i);
|
||||||
|
char *test1;
|
||||||
|
char *test2;
|
||||||
|
test1 = "truc%muche";
|
||||||
|
test1 = strdup(test1);
|
||||||
|
test2 = ft_strchr(test1,'%');
|
||||||
|
if (test2)
|
||||||
|
test2[0] = '\0';
|
||||||
|
printf("%s", test2);
|
||||||
|
test1[6] = 'g';
|
||||||
|
if (test2)
|
||||||
|
printf(" - %s - %i - %s\n", test2 + 1, test2[0], test1);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user