From 629672693edb724136951f6603a38fe52ce6233c Mon Sep 17 00:00:00 2001 From: hugodu69 Date: Wed, 19 Feb 2020 11:14:47 +0100 Subject: [PATCH] orga convert en plusieurs fonctions mais tjr pbm cast int pour di --- ft_printf | Bin 18320 -> 18440 bytes ft_printf.c | 80 ++++++++++++++++++++++++++++++++++------------------ 2 files changed, 52 insertions(+), 28 deletions(-) diff --git a/ft_printf b/ft_printf index 7dd03cfbedf7d237030d1a813a4f0ab05478255a..0b98061e730fca5019799e0cab02562ef273cefb 100755 GIT binary patch delta 4650 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 D%Np^? delta 3903 zcmZ8k3s6+o89w(ey9>(-ySx?_BD>2jioxYo0UZsOmo943IswJ01VnK_t)dZ!R8#SR zh(v<pbq^?4A~(8*;7 zR}LvO8G?_6OJNIcK7M6G|5cM-EB&V_=)*SsKi_@|zZWxwMKBQ}xu>7ucPOUI<>_X4FU2Z~PcyuOVn2!x%knl1@LNi#Dbd0V zHd3sixQ^k~6l*E2W>`eLss%A?DR&AQ2VQeE{@1m0XyjLg1%2HXi$q*~J*Tl+S6|;~ zs6^cFqvP1B;MhDu&aF=_BSo(1l_*?0XHNvV8gFclK1XBG1u&L$(GhtNt#`2mCB1as ztDIikNym#^+kdQtiyFri#X2~al=LbI>gJqDunxU#r*$?>a>Z>a*rqpS|42)2s{+c2=V@iOx5RXDXx>Ww44uaARmi!**8F zR-Sl(2EoZ{*{K>1RD>VR2F-zgu?;??Yg%u?qv6{5cPdCtt*fa%k`kDy=@G2dFS9Ov zB+K>PHQIAX%fp+vLFY6+lPVot)5lCHW*byLmHIX*0z)*=o!D3J&m;cTAMBG-#mx_( zc+zppcC3@tFwb@J_;Ge3jIMJ zkv&nz*hW zU&f;kWVzFWIlB6MT+0JE8RcSN5cs5?$a9v6g?j$*S-5N363iC(M{uiu0#lRuv2 zz9Gvk7w~4n8!dZD_TubDIlCykaN$13D?t{#o%T(q^3{UI@q)&GEljwM>l18 z6Uu8S51@R(Ez9Ro77okucPK4)&>rOv_hdOnB;?YlEYC(+Iws4@P`2Ke<*g{Q@Z^1f z@*2wXC=Ixd--)D@>_FuS5&;t!0RL>H<5w^nWjUVnWhg&FxfSIPC_g~C1Mjx;D6^kp z0F?Tl(I4d-C}Z$sA4NGEWf<Tdw08!ke}@p&43jvBFH~!9E|Z z*{0Z*;`A~w3ds&K>=tt;X;i5yz1E+^Aaxo4S9@S}oLO@l)tF(}8)uH!WO)cF zpO^SObz)w0F&pl}#W=HiA*zqT6Bn&ni`omLptGCRZ=re!6712Mlaw5T`F6ABGOCGV zuo~6dsQzvY_M)jCm*)nYut%#CQM(5hP+N%F&)`A#wWy^`fX-poyoGA+1Wa?7)hAKy zgaSvj<}zv}4`DTq-$vE{5$r`(kCQEW1nsCMqFVL{E;@45n^4`;VT_lxkQ`sD>(@wh zcI31M%+7eDq*fr_%dFX9k+T%PtTWD7VG9g6vxIIiCdC@-{1iL-H=MRg$WBTUGGRkf ztYC-zNe$7Pd8FN3zQ^S;wFIHb4!D}4he5#)s+0RMes+op{Whe8tNaN@K~%|*j?_Ub zA_)d?Oi#*CnuHOC@IC|~mHMTmhN}!D8KueWeYh!gDZPq>kP$1CrydiE;Vv4Rv0!Uj zsgMlY(@ZJVd=0!VPEjeTfeiay~pt;in^}Z5ixOH!WK4&0>-mo5XtjoRBwQ7W&+Iw$*X_ufrrp zAK-&6oIeEv878CMqKxuEa**Z{&eFc%BDY)X zp-%$ZS~#B&ATi8tFw_nqPvbnldB+v|96}$-v<zrT55C5wQP3~~Mho9&~&Obz+?$Yz+s&QMCpGC27W|k>n zE%Of~Qpdoo1QEnJF9xmJRJvmQy3G|EHwWM!Gj*&3sC}VZicap zUt(o^ky^m23Wcq?F}e{xGNOhfx#_+iphTk-Wi!LATxWpyqp^cEFC)ZzG?Oig(KiHE z=Q)ku8_fHYbO=u5B^gJo60;hyD#qtKJbBv$yw9rUCIxsujbdn>i}T`Vs}iow&BBY+ iIxkD?eF@6vy`(#wtay(EK>NIOUCS&5rujj;H2Hry;Wlmn diff --git a/ft_printf.c b/ft_printf.c index c775248..90fd998 100644 --- a/ft_printf.c +++ b/ft_printf.c @@ -110,36 +110,50 @@ int ft_expand_star(int nbr, char **string) ** -'h', 'hh', 'l' and 'll' are traited just like regular size */ +char *conv_li(char c, long int i) +{ + char *s; + + if (c == 'c') + { + s = ft_strdup("0"); + s[0] = i; + return (s); + } + if (c == 'd' || c == 'i') + return (ft_itoa(i)); + return (NULL); +} + +char *conv_lu(char c, unsigned long int i) +{ + char *s; + + s = ft_utoa(i); + if (c == 's') + return (strdup((char *)i)); + if (c == 'u') + return (s); + if (c == 'x') + return (ft_convertbase(s, "0123456789", "0123456789abcdef")); + if (c == 'X') + return (ft_convertbase(s, "0123456789", "0123456789ABCDEF")); + if (c == 'p') + return (ft_utoa(i)); + return (NULL); +} + char *ft_convert(va_list ap, char *type) { - char *print; + char *s; - if (ft_strchr(type, 'c')) - { - print = strdup("0"); - print[0] = (char)va_arg(ap, long int); - } - else if (ft_strchr(type, 's')) - print = strdup((char *)va_arg(ap, long int)); - else if (ft_strchrset(type, "di")) - print = ft_itoa((long int)va_arg(ap, long int)); - else if (ft_strchr(type, 'u')) - print = ft_utoa(va_arg(ap, unsigned long int)); - else if (ft_strchrset(type, "xX")) - { - print = ft_itoa(va_arg(ap, long int)); - if (ft_strchr(type, 'x')) - print = ft_convertbase(print, "0123456789", "0123456789abcdef"); - if (ft_strchr(type, 'X')) - print = ft_convertbase(print, "0123456789", "0123456789ABCDEF"); - } - else if (ft_strchr(type, 'p')) - print = ft_utoa(va_arg(ap, unsigned long int)); - else if (ft_strchrset(type, "efgn")) + if ((s = ft_strchrset(type, "dic")) != NULL) + return (conv_li(s[0], va_arg(ap, long int))); + if ((s = ft_strchrset(type, "uxXps")) != NULL) + return (conv_lu(s[0], va_arg(ap, unsigned long int))); + if (ft_strchrset(type, "efgn")) return (NULL); - else - return (NULL); - return (print); + return (NULL); } /* @@ -320,9 +334,19 @@ int main(int ac, char **av) // printf("%s : %d : %i : %u : %x : %X : %c : %s : %e : %f : %g\n", str, d, i, u, x, X, c, s, e, f, g); // ft_printf_test(str, d, i, u, x, X, c, s, e, f, g); // printf("%s : %i : %i : %li : %li : %u : %lu\n", str2, i1, i2, i3, i4, i5, i6); - ft_printf("sdf\n\n"); - ft_printf("%i\n\n", -23); // ft_printf_test(str2, i1, i2, i3, i4, i5, i6); + printf("sdf\n"); + ft_printf("sdf\n\n"); + printf("%i\n", -23); + ft_printf("%i\n\n", -23); + 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); } return (0); }