From af53304947f5b103b86d55e7b6ff34ef125e0130 Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Mon, 24 Feb 2020 16:09:13 +0100 Subject: [PATCH] precision ok, width en cours --- .ft_printf.c.swm | Bin 0 -> 20480 bytes ft_printf | Bin 45752 -> 45036 bytes ft_printf.c | 183 +++++++++++++++++++++++++------------------- main.c | 72 ++++++++++------- srcs/aside.c | 2 +- srcs/ft_next_word.c | 8 +- 6 files changed, 154 insertions(+), 111 deletions(-) create mode 100644 .ft_printf.c.swm diff --git a/.ft_printf.c.swm b/.ft_printf.c.swm new file mode 100644 index 0000000000000000000000000000000000000000..3a1571ca1c4d394ba957af74ad6eb6e19cd208e7 GIT binary patch literal 20480 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 literal 45752 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 diff --git a/ft_printf.c b/ft_printf.c index 22c03ee..22b0dbc 100644 --- a/ft_printf.c +++ b/ft_printf.c @@ -1,6 +1,105 @@ #include "ft_printf.h" +/* +** -function that modify the string 'print' according to the precision flag : +** if length(s) < precision, add x '0' bfr nbr, but after '-' if negative +*/ + +char *precision_int(char *print, int precision) +{ + int i; + char *tmp; + + i = ft_strlen(print); + if (print[0] == '-') + precision++; + if (precision > i) + { + if (!(tmp = (char *)malloc(sizeof(char) * (precision + 1)))) + return (NULL); + tmp[precision] = '\0'; + if (print[0] == '-') + tmp[0] = '-'; + while (i) + tmp[--precision] = print[--i]; + if (print[0] == '-') + precision++; + while (precision) + tmp[--precision] = '0'; + if (print[0] == '-') + tmp[0] = '-'; + free(print); + print = tmp; + } + return (print); +} + +/* +** -it first verify if there is a precision point, and if so, it execute a +** serie of action listed below, otherwise return print as it is +** ACTIONS : +** -look for a '.' +** -if followed by numbers, extract an int version of those numbers +** -if the '.' is alone, gives value '0' to the int +** -then removes the '.' and the numbers from the %string +** -if flag '0' is present in %string, removes it (actually turn each occurence +** in a '.') +** -and transform 'print' according to the precision : +** -1 if type is s: if length(s) > precision, removes end of 'print' to print +** only x chars, with x = precision +** -2 if type is "diouxX": call fonction 'precision_int' that return : +** if length(s) < precision, add x '0' bfr nbr, but after '-' if negative +** -3 if type is "aAeEfF": not covered +** -4 si type is "gG": not covered +** -5 else: error +*/ + +char *ft_precision(char *s, char *print, char *type) +{ + char *tmp; + int precision; + int i; + + if ((tmp = ft_strchr(s, '.'))) + { + precision = ft_atoi(tmp + 1); + *tmp = '\0'; + while (ft_strchr("#- +'0", *(++s))) + if (*s == '0') + *s = '.'; + i = 0; + if (ft_strchr(type, 's')) + { + while (i < precision && print[i]) + i++; + if (print[i]) + print[i] = '\0'; + } + if (ft_strchrset(type, "diouxX")) + print = precision_int(print, precision); + } + return (print); +} + +/* +** +*/ + +char *ft_width(char *s, char *print, char *type) +{ + int i; + + ft_putstr("[");ft_putstr(s);ft_putstr("|"); + while (ft_strchr("%#- +'0.", *s)) + s++; + ft_putstr(s);ft_putstr("|"); + i = ft_atoi(s); + (void)type; + ft_putnbr(i);ft_putstr("]"); + return (print); +} + /* ** FT_FLAG_TRANSFORM : ** if i = flag_p(&s) | -precision is calculated before width, @@ -30,84 +129,12 @@ ** char *ft_lpadd(int i, char *print, char c); */ -char *ft_precision(char *s, char *print) -{ char *test; - char *tmp; - int i; test = s; - - if ((tmp = ft_strchr(s, '.'))) - { ft_putstr("(");ft_putstr(s);ft_putstr(")"); - i = ft_atoi(tmp + 1); - while (*tmp) - *(tmp++) = '\0'; - while (ft_strchr("#- +'0", *(++s))) - if (*s == '0') - *s = '.'; -// tmp = s; -// while (ft_strchr("%#- +'0", *s)) -// { -// if (*s == '0') -// s++; -// *tmp = *s; -// tmp++; -// s++; -// } -// while (*s) -// { -// *tmp = *s; -// s++; -// tmp++; -// } -/* *tmp = '\0';*/ s = test;ft_putstr("[");ft_putnbr(i);ft_putstr("]");ft_putstr("(");ft_putstr(s);ft_putstr(")"); -// return (precision_trsf); - } - return (print); -} - -char *ft_flag_transform(char *s, char *print) +char *ft_flag_transform(char *s, char *print, char *type) { -// printf("|%i| - |%.0i| - |%.0i| - |%.i|\n",0,0,1,0); -// printf("|%i| - |%i| - |%.4i| - |%.4i|\n",10,-10,10,-10); -// printf("|%i| - |%05i| - |%05.4i| - |%.4i|\n",10,10,10,10); -// printf("|%i| - |%-5i| - |%-5.4i| - |%-.4i|\n",10,10,10,10); -// char * t = "trois"; -// printf("|%s| - |%.0s| - |%.2s| - |%.10s|\n",t,t,t,t); -// char y = 'y'; -// printf("|%c| - |%.0c| - |%.2c| - |%.10c|\n",y,y,y,y); - - print = ft_precision(s, print); -// (print, s, type); // -regarde s'il y a un '.' suivit de - // chiffres, donc une precision - // -si oui transforme les chiffres en - // un int 'precision' - // -s'il y a un '.' sans chiffres, - // donner la valeur 0 a 'precision' - // -virer ces chiffres et le '.' de s - // -si flag '0', l'enlever de s aussi - // -transformer print en fonction de - // cette precision : - // -1 si type vaut s: - // -si length(s) > a precision - // raboter la fin de s pour afficher - // uniquement au max la longueur de - // precision - // -sinon laisser print tel quel - // -2 si type de s est "diouxX": - // -si length(s) < a precision - // ajouter des '0' avant le nombre - // mais apres le signe '-' si c'est - // un nombre negatif - // -3 si type de s est "aAeEfF": - // -non traite - // -4 si type de s est "gG": - // -non traite - // -5 sinon: - // -erreur - -// int i; -// -// if ((i = flag_p(&s))) -// print = ft_precision(i, print); + ft_putstr(s);ft_putstr("|"); + print = ft_precision(s, print, type); + ft_putstr(s);ft_putstr("|"); + print = ft_width(s, print, type); // if ((i = flag_w(s))) // { // if (flag_-(&s)) @@ -171,7 +198,7 @@ int ft_printf(char *string, ...) return (-1); if (!(print = ft_convert(ap, type))) return (-1); - if (!(print = ft_flag_transform(s, print))) + if (!(print = ft_flag_transform(s, print, type))) return (-1); length += ft_put_word(print); } diff --git a/main.c b/main.c index 5797780..365b1d7 100644 --- a/main.c +++ b/main.c @@ -88,33 +88,53 @@ int main(int ac, char **av) { printf("sdf\n"); ft_printf("sdf\n\n"); - printf("%i\n", 23); - ft_printf("%i\n\n", 23); + printf("'%i'\n", 23); + ft_printf("'%i'\n\n", 23); long int k = -23; - printf("%li\n", k); - ft_printf("%li\n\n", k); - printf("%i\n", -32); - ft_printf("%i\n\n", -32); - printf("%li\n", 9223372036854775807); - ft_printf("%li\n\n", 9223372036854775807); - printf("%c\n", 'f'); - ft_printf("%c\n\n", 'f'); - printf("%s\n", "sdffhk"); - ft_printf("%s\n\n", "sdffhk"); - printf("%u\n", 1221879); - ft_printf("%u\n\n", 1221879); - printf("%x\n", 3287); - ft_printf("%x\n\n", 3287); - printf("%lX\n", 9223372036854775807); - ft_printf("%lX\n\n", 9223372036854775807); - printf("%p\n", "dfgdf"); - ft_printf("%p\n\n", "dfgdf"); - ft_printf("%.i\n", 123); - ft_printf("%.2i\n", 123); - ft_printf("%.252653i\n", 123); - ft_printf("%0.6i\n", 123); - ft_printf("%- 032.6i\n", 123); - ft_printf("%0-0 32.6i\n", 123); + printf("'%li'\n", k); + ft_printf("'%li'\n\n", k); + printf("'%i'\n", -32); + ft_printf("'%i'\n\n", -32); + printf("'%li'\n", 9223372036854775807); + ft_printf("'%li'\n\n", 9223372036854775807); + printf("'%c'\n", 'f'); + ft_printf("'%c'\n\n", 'f'); + printf("'%s'\n", "sdffhk"); + ft_printf("'%s'\n\n", "sdffhk"); + printf("'%u'\n", 1221879); + ft_printf("'%u'\n\n", 1221879); + printf("'%x'\n", 3287); + ft_printf("'%x'\n\n", 3287); + printf("'%lX'\n", 9223372036854775807); + ft_printf("'%lX'\n\n", 9223372036854775807); + printf("'%p'\n", "dfgdf"); + ft_printf("'%p'\n\n", "dfgdf"); + printf("'%.i'\n", 123); + ft_printf("'%.i'\n\n", 123); + printf("'%.2i'\n", 123); + ft_printf("'%.2i'\n\n", 123); + printf("'%.25i'\n", 123); + ft_printf("'%.25i'\n\n", 123); + printf("'%0.6i'\n", 123); + ft_printf("'%0.6i'\n\n", 123); + printf("'%- 032.6i'\n", 123); + ft_printf("'%- 032.6i'\n\n", 123); + printf("'%0-0 32.6i'\n", 123); + ft_printf("'%0-0 32.6i'\n\n", 123); + printf("'%0-0.6i'\n", 123); + ft_printf("'%0-0.6i'\n\n", 123); + printf("'%s'\n", "string"); + ft_printf("'%s'\n\n", "string"); + printf("'%.7s'\n", "string"); + ft_printf("'%.7s'\n\n", "string"); + printf("'%.2s'\n", "string"); + ft_printf("'%.2s'\n\n", "string"); + printf("'%.0s'\n", "string"); + ft_printf("'%.0s'\n\n", "string"); + printf("'%.s'\n", "string"); + ft_printf("'%.s'\n\n", "string"); + printf("'%.7i'\n", -123456); + ft_printf("'%.7i'\n\n", -123456); } /* ////////////////////////////////////////////////////////////////// */ diff --git a/srcs/aside.c b/srcs/aside.c index 4869d72..a91035d 100644 --- a/srcs/aside.c +++ b/srcs/aside.c @@ -6,7 +6,7 @@ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/19 16:23:01 by hulamy #+# #+# */ -/* Updated: 2020/02/20 13:03:34 by hulamy ### ########.fr */ +/* Updated: 2020/02/24 14:34:16 by hulamy ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/srcs/ft_next_word.c b/srcs/ft_next_word.c index 4168b09..bca6b3b 100644 --- a/srcs/ft_next_word.c +++ b/srcs/ft_next_word.c @@ -6,7 +6,7 @@ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/10 13:58:30 by hulamy #+# #+# */ -/* Updated: 2020/02/10 16:36:35 by hulamy ### ########.fr */ +/* Updated: 2020/02/24 14:33:47 by hulamy ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,12 +26,8 @@ int width_precision(char *s) i = 0; if (ft_strchr("*", s[i]) != NULL) i++; - else if (ft_strchr("123456789", s[i]) != NULL) - { + while (ft_strchr("0123456789", s[i]) != NULL) i++; - while (ft_strchr("0123456789", s[i]) != NULL) - i++; - } return (i); }