From c55c9e4aacda4d8ba64ecf113095cab311911a97 Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Mon, 10 Feb 2020 12:09:59 +0100 Subject: [PATCH] separation de la string en mots fonctionne --- .ft_printf.c.swn | Bin 0 -> 32768 bytes ft_printf.c | 58 ++++++++++++++++++++++++++--------------------- 2 files changed, 32 insertions(+), 26 deletions(-) create mode 100644 .ft_printf.c.swn diff --git a/.ft_printf.c.swn b/.ft_printf.c.swn new file mode 100644 index 0000000000000000000000000000000000000000..c0a6dca4fcbf6dfe689aa33f862f3e55a7601996 GIT binary patch literal 32768 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 E2fN0yA^-pY literal 0 HcmV?d00001 diff --git a/ft_printf.c b/ft_printf.c index 91ca549..9399900 100644 --- a/ft_printf.c +++ b/ft_printf.c @@ -11,7 +11,8 @@ ** while s = next_word() | -return the next sequence to be print ** | (either a string, or a conversion) ** type = ft_specifier(&s) | -return the type if it's a conversion, or "%", -** | or NULL if it's a string. +** | or NULL if it's a string. if it's a +** | single '%' it's considered as a string ** | if convers0, rmvs length & specifier from s ** if !type: ft_put_word() | -print the string if it wasn't a conversion ** while ft_strchr(s,'*') | -for each * present, expand it into s in @@ -30,50 +31,48 @@ ** char *ft_flag_transform(char *s, char *print); */ -int isword(char *s) +int word_length(char *s) { int i; - if ('\0') + i = 1; + if (s[0] == '\0') return (0); - i = 0; - if (s[i] != %) + if (s[0] != '%') { - while (s[i] != %) + while (s[i] != '%' && s[i] != '\0') i++; + printf("%02i.:",i); return (i); } - i = 1; - while (strchr(s[i],"#0- +'")) + while (strchr("#0- +'", s[i]) != NULL) i++; - if (*) + if (strchr("*", s[i]) != NULL) i++; - else if (1,2,3,4,5,6,7,8,9) + else if (strchr("123456789", s[i]) != NULL) { i++; - while (0,1,2,3,4,5,6,7,8,9) + while (strchr("0123456789", s[i]) != NULL) i++; } - if (.) + if (strchr(".", s[i]) != NULL) { i++; - if (*) + if (strchr("*", s[i]) != NULL) i++; - else if (1,2,3,4,5,6,7,8,9) + else if (strchr("123456789", s[i]) != NULL) { i++; - while (0,1,2,3,4,5,6,7,8,9) + while (strchr("0123456789", s[i]) != NULL) i++; } } - if (h,hh,l,ll) + if (strchr("hl", s[i]) != NULL) i++; - if (!(d,i,u,x,X,c,s,p,%,e,f,g,n)) - return (-1); + if (strchr("diuxXcspefgn%", s[i]) != NULL) + i++; + printf("%02i::",i); return (i); -// if (*s == '\0') -// return (0); -// return (1); } char *next_word(char **string) @@ -85,7 +84,11 @@ char *next_word(char **string) s = *string; if (*s == '\0') return (NULL); - i = isword(s); + if ((i = word_length(s)) < 0) + { + printf("error\n"); + return (NULL); + } word = (char *)malloc(sizeof(char) * (i + 1)); word[i] = '\0'; memmove(word, s, i); @@ -105,7 +108,7 @@ int ft_printf(char *string, ...) va_start(ap, string); while ((s = next_word(&string)) != NULL) { - printf("%s\n", s); + printf("[%s]\n", s); (void)print; (void)type; length = 1; @@ -191,7 +194,7 @@ int ft_printf_test(char *string, ...) return (0); } -int main(void) +int main(int ac, char **av) { char *s; char *str; @@ -202,9 +205,12 @@ int main(void) c = 'p'; str = "bravo"; i = 6; - printf("%s-%s-%c-%i\n\n", s, str, c, i); + if (ac == 2) + printf("[%s]", av[1]); + printf("[%s][%s][%c][%i]\n\n", s, str, c, i); // ft_printf_test(s, c, str, i); - ft_printf(s, c, str, i); + if (ac == 2) + ft_printf(av[1]); return (0); }