ecriture en pseudo code de store

This commit is contained in:
Hugo LAMY
2020-01-08 13:42:57 +01:00
parent 364176b464
commit f5e91534e1
4 changed files with 57 additions and 28 deletions

View File

@@ -8,17 +8,19 @@ int ft_error(int i)
return (0);
}
t_list *ft_store(char *str)
t_prist *ft_store(char *str)
{
t_prist *arglst;
t_list *lst;
t_prist *lst;
t_prist *lstmp;
char *tmp;
//str = "truc: %i, machins:%s\n"
str = ft_strdup(str);
lst = NULL;
while (*str != '\0')
{
(*arglst) = (t_prist *)malloc(sizeof(*arglst));
lst = ft_lstadd_back(&lst, arglst);
lstmp = lst;
(*lst) = (t_prist *)malloc(sizeof(*lst));
if (tmp = strchr(str,%))
tmp[0] = '\0'
(*arglst)->str = ft_strdup(str);
@@ -26,14 +28,15 @@ t_list *ft_store(char *str)
if (tmp != NULL)
tmp[0] = '%';
str = tmp;
lst->next = lstmp;
}
return (*arglst);
return (*lst);
}
int ft_printf(char *string, ...)
{
t_prist *lst;
va_list ap;
t_list *lst;
va_start(ap, string);
lst = ft_store(string);

1
libft

Submodule libft deleted from e9c7619e97

1
libft.c Symbolic link
View File

@@ -0,0 +1 @@
../libft

66
test.c
View File

@@ -1,25 +1,40 @@
#include <stdarg.h>
#include <libc.h>
int ft_printf(char *string, ...)
//int ft_printf(char *string, ...)
//{
// va_list ap;
// int d;
// char c;
// 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);
//}
char *ft_strchr(const char *s, int c)
{
va_list ap;
int d;
char c;
char *s;
int i;
int j;
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);
i = 0;
j = -1;
while (s[i])
i++;
while (++j < i + 1)
if (s[j] == c)
return ((char *)s + j);
return (NULL);
}
int main(void)
@@ -29,6 +44,17 @@ int main(void)
char c = 'p';
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);
}