From 966241a6df1157bcafe168dcaa8549424b0ff1ba Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Tue, 19 Nov 2019 18:16:42 +0100 Subject: [PATCH] mise a jour de plusieurs fonctions --- .Makefile.swn | Bin 16384 -> 40960 bytes Makefile | 6 +-- OLDsrc/str/ft_strlcat.c | 75 ++++++++++++++++++++++++++- a.out | Bin 8432 -> 8860 bytes srcs/a.out | Bin 0 -> 8720 bytes srcs/ft_calloc.c | 28 +++++++++++ srcs/ft_memalloc.c | 27 ++++++++++ srcs/ft_strlcat.c | 109 ++++++++++++++++++++++++++++++++++++++++ srcs/ft_strlcpy.c | 4 +- srcs/ft_strtrim.c | 59 ++++++++++++++++++++++ srcs/ft_substr.c | 32 ++++++++++++ 11 files changed, 333 insertions(+), 7 deletions(-) create mode 100755 srcs/a.out create mode 100644 srcs/ft_calloc.c create mode 100644 srcs/ft_memalloc.c create mode 100644 srcs/ft_strlcat.c create mode 100644 srcs/ft_strtrim.c create mode 100644 srcs/ft_substr.c diff --git a/.Makefile.swn b/.Makefile.swn index 8eb69b8789bb1d194b551563d230f6694ce6cda3..e91197adb27df3bf5143895c27615975bd638834 100644 GIT binary patch literal 40960 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 +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2018/11/14 21:17:22 by hulamy #+# #+# */ -/* Updated: 2019/03/25 15:22:42 by hulamy ### ########.fr */ +/* Updated: 2019/11/19 14:40:09 by hulamy ### ########.fr */ /* */ /* ************************************************************************** */ /* -** append src to sized dest and return size of final dest +** append src to sized dest and return size of final dest +** +** TESTS : */ +/* +** #include +** #include +** #include +** +** size_t ft_strlcat(char *dest, const char *src, size_t size); +** +** size_t ft_strlcat2(char *dest, char *src, size_t size); +** +** int ft_strlen(char *str) +** { +** int i; +** +** i = 0; +** while (str[i]) +** i++; +** return (i); +** } +** +** int main(int ac, char **av) +** { +** char tmp1[100]; +** char tmp2[100]; +** int i; +** +** i = atoi(av[3]); +** strcpy(tmp1, av[1]); +** strcpy(tmp2, av[2]); +** +** if (ac == 4) +** { +** printf("----strlcat: %zu - %s - %s\n", strlcat(tmp1, tmp2, i), tmp1, tmp2); +** +** strcpy(tmp1, av[1]); +** strcpy(tmp2, av[2]); +** +** printf("-ft_strlcat: %zu - %s - %s\n", ft_strlcat(tmp1, tmp2, i), tmp1, tmp2); +** +** strcpy(tmp1, av[1]); +** strcpy(tmp2, av[2]); +** +** printf("ft_strlcat2: %zu - %s - %s\n", ft_strlcat2(tmp1, tmp2, i), tmp1, tmp2); +** } +** } +** +** size_t ft_strlcat2(char *dest, char *src, size_t size) +** { +** size_t i; +** size_t dest_length; +** size_t src_length; +** +** i = 0; +** dest_length = ft_strlen(dest); +** src_length = ft_strlen(src); +** if (size > dest_length + 1) +** { +** while (i < (size - dest_length - 1)) +** { +** dest[i + dest_length] = src[i]; +** i++; +** } +** dest[dest_length + i] = '\0'; +** } +** if (size >= dest_length) +** return (dest_length + src_length); +** return (src_length + size); +** } +*/ + #include "libft.h" size_t ft_strlcat(char *dest, const char *src, size_t size) diff --git a/a.out b/a.out index ac3493ee1054335c0f0792d0438d248e2d22852b..9f2559e21dbea0e42b8eaa1939040c5a2ba0e922 100755 GIT binary patch literal 8860 zcmeHNU2IcT96x14%V$d>IAua5nL$1_n1&2Q(~;eHKqd%VMB}{cx{ft;A9k%WlO=;v zv&(g6F)=>q0}nos_@E||XcRI&G8SWEB^nw-Odr79CYUU;hlU9C_dn;{?zS5~^Kk#k zx#$0V{`Ysz*}c7Izuf)%{-ca}su&wx#2E9T`4=;mW&v=FJ%Ps2bp2rS%i5dTp#!8X zCr`P!phS7HaMblS?MPd>i-`A^>zI;J8$&swk%z7)BF7WNNvh13S&Ey1X-l=VldM>& zsAi**kyl+GN+i36N~+3y|E`qz)+rBLwgbE>-y=#P^Xa{j*kB|MU1h#n08I7mQT`+o z?j@R6Uw9}HkM-ecJO_+0(pY&51^Cy51kthlcyQ24ebPA`W@se5GXqhT?4^ z{Ar!or0Yiq9Lr>0KEJBZs{%-_%ttlar0cQJ|J7Hc@@-TBBs=p_E_*C;ncG+U_rCgy z*0R^0z(56VkcmE5lR$X{u0qS$2JG8y#0O-4FZw2u6$Jx~b%H;G{s?+XQ-j8yW^6gS zS@dVoFGD+s<|KRHIdO2>iJwILib^G9Y#SCpqcIwiL-B@Kw5y?eIMxlBXe}Dm@xzy| zFMDga={a-st80Hup1RWrT>#C4##UnUq7g5!th(gc1Rl_q2zZZDo*B9U2hq4qXk?>% z_T0URKLeh*T2Rm7;h{vNuYONG>WX&33G@saLy%d_` zFK8Lx$yG8DEZQ{O3we6@!8{E`juhYvJar}5aarEqiQ7RuQ@Oc#C7y}gWaM)-U5i1e zSmS&R4QHJ5i&4|EJ6>b`i3jQT^Z+-0;^QL|MtZq$P=4=vt#6zT=L2O{KR4108tX$i zrNj``P!;YMi@r2RIp2xQ7y0-(5r_eJ_!Anz>O=$|AD8O(2|oVf7o;(!zGl`zaLppL z#kfROadTW2{EpX1&mz0Ew%kS4WqVOw7P-w5B=ZJ`HAmK)1Zi0fyGu3vjK~MqaD&1> zEq7ULUrO?+Zoy**^OE!4^gO*-j*9FIBP3YRHXDV+X3(#2S17 znRy(S3Hik&vpSgboT(OPgFcTuQKSzdYtVdP{Oa6)gDvBHk?ajhw*Svymy+rHk?cV< z^u!7}gsW4IRLJz72TuFR3VEzTCRm*Q^m)xbTV4VlpMS(zF1nz7CSGX|;52+bp8DKJ pC+6TAO9G(P1=M9LMa*}ZMy?&9DowtWO4BYU+@9)rD-6XG{Rd}FEbagR literal 8432 zcmeHMPiP!f9DdtW4Y4+xOYkp@#Z9!*BuWt}RI(vMr&zSLDbz}N+1+g2mCa_^oz+Gt z7K*|kk@TiFPqJVSQ6dzSP_$ML6?^C*2M;+^Nuf$k9ya3oeeb=Q%uZVG;`_nd_xpYC z_rCXg-^{@5yr0{@|NVdvsU9KD?+`-tqg~l4#QVa5C&VLY9-5R#vxnSM?rX0S?Y2~R zc-M$Lt4Ne`$~`&NoucNayD?#6)F$pTjTut<#j`#=ZArehUDynUmP}EMv7Ig3Db8;N zdjKc}NhA$k~e6m!m)QWW^CHX!!e2*Fe#?(EsZS@rze!X0M z({K>3g6pR)L3mvgJ+CY7xrkfJYDG5YXY+FvS@Y}n^V4c_?4I4$;072>?HPyn6{xiL7sSBd+?l%am>+c_o9E8u`$OH z>ee4a&pc|+@e*R*$CuH+i2gyeqiAtsZrI{@+;2IF=fMo}w!x6V<03|zjrwS%oFAQ; zugoB(J%+|Q23KAhX?;H?Kl$mS59FbJtIq>-&{Ak(cb{tXm6ko5bIjP&*gtvr zT*i$d_r)>pA=SQx?WVSBK|ROk8-8(iWMTw$mGek~4WW^L+R=JGV`A!M%_?9OunJfO ztO8bn|EB^cyx>>w!ky_K+`lNmHFq<2&28ts1$Wa6+>QQ~=BBrBu!UEaC9(bU4)6q{51SiN<}HBZ0I@(8;OB4ycMagP@XRV-DexD7gYeAs zWd*JROc}6$67YxMJ@;qewt@}s!qw^1-*qzYf=P%Y3s02cWRG_;ucKcq5xo6d zr_*t?6-v3flXDI_!P*sw`Q<6_C=;Sv%?W^IwH?G zZ|9o6bHK?IBCHl+pw>lzHI^5r=5oVB`G|XqI)ASzYA+M<8TwuOaq0n!_k3^Wd-ZVvXm*w9p~kpVB9R{Jt=#V*R~>F~4J=k3Ky-m54PhKq1EI TJ2)ZUUV~IMg!OLQ5$62^Kbe1f diff --git a/srcs/a.out b/srcs/a.out new file mode 100755 index 0000000000000000000000000000000000000000..b2001ccd6f8bdd9be80f61ba355724aa5f999130 GIT binary patch literal 8720 zcmeHNU1%It6u#3`U2E-Zq}W=k9g8WpLb}x=mA1H%4o)!9{$!yF?KGQin!sig_lG7z zAh-==vKHclAo$Wp^+AI4p&-;Gl_nO{_+Xlc3j46?EUYm2Afag2@0+=k>~5;>${e_J z@45Hf@1FCWJLK-%e1G@1dk+brGzl@bK?tFu%xn~5Txe(s@dS#2Vw%U>Uen*!Prk|C zdQs}t`)b5lhM{S8>8HEuP2Bn6`aU6b_$D5Zg%+lnO$=w*@}v=O`VjN9pAeFG56TV?&+JPihZ1S@HR4T4yl167b@IL{ z>-_7koDy&CJ?LnE<8}R5yT6CEhB%>9!qOSyxIDPMLhQzS7GYZx zB7`c0dOK=gG|e3nQPjieBn-zFpkphGsb>Iyn(gB#wc_HTqc)D(akhss-`}gXV_TqT zDBS1!bD8x1WPg1B`H|##=#(c>=tsxpZ&wa49Ljw#_ha&c7P<2R`ZN>;MQqvR7Peg< zn&y;!X!{(~} zdG%hYldnJm1_A~G1_A~G2L3M$#0=|a!x~*Ntej)yM;)PFdIhl=1sz>_(U{kH8l!F- zhjmBI@AR~yQRuV{>z0w9Qw%F+-`p4y<)v!1TBiA#8|to0YzP-WU(v9JV-!&G^NKP1 ztFUAEi;fj+Bflcl@ke2bwN^N#>@6{BV^P@80RN`l1!&g^3y#sb{MXu<8@*E!KSF#f zSAi=5Lr-f%;~- zm>0F~lz;M|91=Q4dzmlBDpNDBmtaJ49HXbx_JDZ&LdxJ3C@vQiE{0PD5E>AZ4bg{3TbCdBUs}gw^V&dM&JlD{ zpsZ@?rSccRKk&yYh3;w-is%?k=g{39FQ??q6+Q{}Z-CzKQwKl_qt3 zuQwa-&2Y#~QDG=-e@t&LA2m2;-JBNoW1OZ}4$OG3#8kCq0zK81Nj!PJe(D`mZKtX& z-KeMf*jfGsq4Y7j@*T8VGMn7nH=n)wjJ6KuA{TP&|FbW+|M_e1AS&WL(A}RBX?~Ru8{+RK(u3j0uPym{Ov?uHoi-J(ni9^w?ty1d=G(ByqAyHf58X%BIUFa)?Cune=nGF6ZKJ DX(Epf literal 0 HcmV?d00001 diff --git a/srcs/ft_calloc.c b/srcs/ft_calloc.c new file mode 100644 index 0000000..19ad171 --- /dev/null +++ b/srcs/ft_calloc.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_calloc.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: hulamy +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/11/19 14:56:09 by hulamy #+# #+# */ +/* Updated: 2019/11/19 15:21:25 by hulamy ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* +** exemple allocation for 5 integers with malloc then calloc : +** a = (int *)malloc(5 * sizeof(int)); //5*4bytes = 20 bytes +** free(a); +** a = (int *)calloc(5, sizeof(int)); +** +** allocate count * size byte of memory and +** return a pointer to the allocated memory +*/ + +#include "libft.h" + +void *ft_calloc(size_t count, size_t size) +{ + return (ft_memalloc(count * size)); +} diff --git a/srcs/ft_memalloc.c b/srcs/ft_memalloc.c new file mode 100644 index 0000000..072e7f1 --- /dev/null +++ b/srcs/ft_memalloc.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memalloc.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: hulamy +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/11/19 15:21:44 by hulamy #+# #+# */ +/* Updated: 2019/11/19 15:23:17 by hulamy ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* +** allocate size byte of memory and return a pointer to the allocated memory +*/ + +#include "libft.h" + +void *ft_memalloc(size_t size) +{ + void *tmp; + + if (!size || !(tmp = malloc(size))) + return (NULL); + ft_bzero(tmp, size); + return (tmp); +} diff --git a/srcs/ft_strlcat.c b/srcs/ft_strlcat.c new file mode 100644 index 0000000..b381f99 --- /dev/null +++ b/srcs/ft_strlcat.c @@ -0,0 +1,109 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlcat.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: hulamy +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/11/19 15:09:51 by hulamy #+# #+# */ +/* Updated: 2019/11/19 15:09:54 by hulamy ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* +** append src to sized dest and return size of final dest +** +** TESTS : +*/ + +/* +** #include +** #include +** #include +** +** size_t ft_strlcat(char *dest, const char *src, size_t size); +** +** size_t ft_strlcat2(char *dest, char *src, size_t size); +** +** int ft_strlen(char *str) +** { +** int i; +** +** i = 0; +** while (str[i]) +** i++; +** return (i); +** } +** +** int main(int ac, char **av) +** { +** char tmp1[100]; +** char tmp2[100]; +** int i; +** +** i = atoi(av[3]); +** strcpy(tmp1, av[1]); +** strcpy(tmp2, av[2]); +** +** if (ac == 4) +** { +** printf("----strlcat: %zu - %s - %s\n", strlcat(tmp1, tmp2, i), tmp1, tmp2); +** +** strcpy(tmp1, av[1]); +** strcpy(tmp2, av[2]); +** +** printf("-ft_strlcat: %zu - %s - %s\n", ft_strlcat(tmp1, tmp2, i), tmp1, tmp2); +** +** strcpy(tmp1, av[1]); +** strcpy(tmp2, av[2]); +** +** printf("ft_strlcat2: %zu - %s - %s\n", ft_strlcat2(tmp1, tmp2, i), tmp1, tmp2); +** } +** } +** +** size_t ft_strlcat2(char *dest, char *src, size_t size) +** { +** size_t i; +** size_t dest_length; +** size_t src_length; +** +** i = 0; +** dest_length = ft_strlen(dest); +** src_length = ft_strlen(src); +** if (size > dest_length + 1) +** { +** while (i < (size - dest_length - 1)) +** { +** dest[i + dest_length] = src[i]; +** i++; +** } +** dest[dest_length + i] = '\0'; +** } +** if (size >= dest_length) +** return (dest_length + src_length); +** return (src_length + size); +** } +*/ + +#include "libft.h" + +size_t ft_strlcat(char *dest, const char *src, size_t size) +{ + size_t i; + size_t j; + + i = 0; + j = 0; + while (dest[i] && i < size) + i++; + while (src[j]) + { + if (j + i < size - 1 && size) + { + dest[i + j] = src[j]; + dest[i + j + 1] = '\0'; + } + j++; + } + return (i + j); +} diff --git a/srcs/ft_strlcpy.c b/srcs/ft_strlcpy.c index 5c34b75..289c870 100644 --- a/srcs/ft_strlcpy.c +++ b/srcs/ft_strlcpy.c @@ -5,8 +5,8 @@ /* +:+ +:+ +:+ */ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2019/11/19 13:03:47 by hulamy #+# #+# */ -/* Updated: 2019/11/19 14:11:39 by hulamy ### ########.fr */ +/* Created: 2019/11/19 15:10:04 by hulamy #+# #+# */ +/* Updated: 2019/11/19 15:10:07 by hulamy ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/srcs/ft_strtrim.c b/srcs/ft_strtrim.c new file mode 100644 index 0000000..6767eaf --- /dev/null +++ b/srcs/ft_strtrim.c @@ -0,0 +1,59 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strtrim.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: hulamy +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/11/19 17:26:06 by hulamy #+# #+# */ +/* Updated: 2019/11/19 18:15:32 by hulamy ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* +** create a copy of s without the firsts and lasts empty characters +*/ + +/* +** #include +** +** char *ft_strtrim(char const *s1, char const *set); +** +** int main(int ac, char **av) +** { +** if (ac == 3) +** printf("%s\n",ft_strtrim(av[1], av[2])); +** +** return (0); +** } +*/ + +#include "libft.h" + +char *ft_strtrim(char const *s1, char const *set) +{ + int len; + char *str; + (void)set; + + if (!s1) + return (NULL); + while (s1[0] && ft_strchr(set, s1[0])) + s1++; + len = ft_strlen(s1) - 1; + while (len >= 0 && ft_strchr(set, s1[len])) + len--; + len++; + if (!(str = ft_strsub(s1, 0, len))) + return (NULL); + return (str); +} + + + + + + + + + diff --git a/srcs/ft_substr.c b/srcs/ft_substr.c new file mode 100644 index 0000000..2e76ab2 --- /dev/null +++ b/srcs/ft_substr.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_substr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: hulamy +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/11/19 17:20:51 by hulamy #+# #+# */ +/* Updated: 2019/11/19 17:24:10 by hulamy ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* +** create a copy of a portion of s, begining at start and of length len +*/ + +#include "libft.h" + +char *ft_substr(char const *s, unsigned int start, size_t len) +{ + char *str; + size_t i; + + if (!s) + return (NULL); + if (!(str = ft_strnew(len))) + return (NULL); + i = 0; + while (i < len) + str[i++] = s[start++]; + return (str); +}