From da6c5563d83faa53562684a347eb61a0a6bd9908 Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Thu, 21 Nov 2019 00:29:59 +0100 Subject: [PATCH] ecrit lstiter et main --- srcs/bonus/a.out | Bin 8744 -> 8664 bytes srcs/bonus/ft_lstiter.c | 88 +++++++++++++++++++++ srcs/bonus/lstclear.c | 13 +-- srcs/bonus/{ft_lstdelone.c => lstdelone.c} | 0 srcs/bonus/lstiter.c | 22 ------ 5 files changed, 89 insertions(+), 34 deletions(-) create mode 100644 srcs/bonus/ft_lstiter.c rename srcs/bonus/{ft_lstdelone.c => lstdelone.c} (100%) delete mode 100644 srcs/bonus/lstiter.c diff --git a/srcs/bonus/a.out b/srcs/bonus/a.out index a1ab01480a028bb4116bd7cc64c0babb46f00753..fbebddbe0148c9a5e4e78974949d40d0396f64cc 100755 GIT binary patch delta 1229 zcmZ{kU1$?o6vxkGrfq84&O|}8x~++}>OQC~DwbWljktp&RBZhK6>E%fY6?voYC`Kn z$x0L*hG5GD!H0$J!@@3#R0JPOrGg)*O~r>k_|YORDTqd>T0|WGcQVx~c;Vce|L^|K z;oJ%L{`<$ow*IU)>md?|Xr+h=BReqF=$)x3z_J3P8CEAWdPy$OYKIa#1zPRUvkt9h ziCvzlX}DW`8!X>KD7LEfd!>{!Ou=gyA}@l zi4Pu|zXIIO8slRQVgWmLwou?o&{hWZ%ZQVuf>7wqH-fLVS3-ehLebM$7Yk8-AscA~FRdAJU432s>Lf8jga z8f&U>djz{o7JFA%sKS?e4~L=NgZ^3rUek$8!)so`cwnfv;W-Xb_s~#p8d)uUGuS%n zd{+fs<9|rzwRGPs$!Ch-n_kN^O?6gF_qs_w?VXcmFX|`rxe?2f9I-I4GKoesys?VS|iH-}s? zJr;?dr0pFi64WG8b_rOg-a`l46UdH=G~^?Z@;{NdmCtwA(WPGDqyaiZ@e|N6u-i>-k`^yXazdJhb_?w_%=c)GCi+R32^quCnxrC^K d+_s&9Hei1RDob!6egyV3Q019-d}ak!eFij@P?rDz delta 1491 zcmZuxVQ5=b6h1F6b!nUUl5W&&wQVwJ>4eRd>5xiEihFV=4l_poOh(L-S6Xb6+NG|A zg;(iB-$Eee{_&4Y`a?y3Sgc?XnHd|cKc>ckqEKW7C$BIh1I26;<9A`ZsiPbs@}ueiO!!J@Wz+roBfQdn-gQLf$GuVIF2Cf>n$}E}E#zyYT}(p83VMwd zh*`P~)+X&uQ4F@q3MXpJQnm(xw_t*VX4Zqsz&0#IJ)(5$R=r-AMK-fWJWjkG^@zGN z*R3O7kc+@qyBczE1>guQ>0jILKlDG8hNL}4dnT6wcnauA-ou!wN zU)s()=_X05Bl!{%^FI>Eio?#ztZyxS6`Gf!8N6xfpIH^Qa6Q(%Db9v1+%f%P*O>U% zI9)?rh}3@s0Qr}VBSCCkufY+X;6HP%RPXD+8tQ#}oVgP-(Tm0IKjB7B)%$M4m&OIT z^&7Tk+$*9D5$zMvO+*Kq27gy;Q`-0e&EOwtJw9=?pMp+UjsKuM+3~nMmHpBm*7#km zcjd7EE6p9)??1)ep|CkNZ5ULd>0lrlPbVfPvq^zMKvUBbncNrvK7uWZ{Sj?wj diff --git a/srcs/bonus/ft_lstiter.c b/srcs/bonus/ft_lstiter.c new file mode 100644 index 0000000..9da910e --- /dev/null +++ b/srcs/bonus/ft_lstiter.c @@ -0,0 +1,88 @@ +/* +** go through all elements of the list and apply the function f to each of them +*/ + +/* +** #include +** +** typedef struct s_list +** { +** void *content; +** struct s_list *next; +** } t_list; +** +** void *ft_memcpy(void *dst, const void *src, size_t n) +** { +** size_t i; +** char *ptr; +** char *ptr2; +** +** ptr = (char *)dst; +** ptr2 = (char *)src; +** i = -1; +** while (++i < n) +** ptr[i] = ptr2[i]; +** return (dst); +** } +** +** t_list *ft_lstnew(void *content) +** { +** t_list *lst; +** +** if (!(lst = (t_list *)malloc(sizeof(*lst)))) +** return (NULL); +** if (!content) +** lst->content = NULL; +** else +** { +** if (!(lst->content = malloc(sizeof(content)))) +** return (NULL); +** ft_memcpy(lst->content, content, sizeof(content)); +** } +** lst->next = NULL; +** return (lst); +** } +** +** void ft_lstiter(t_list *lst, void (*f)(void*)); +** +** void to_uppercase(void *element) +** { +** // *(char*)(((t_list*)element)->content) -= 32; +** // or : +** t_list *tmp; +** +** tmp = (t_list*)element; +** *(char*)(tmp->content) -= 32; +** } +** int main(void) +** { +** t_list *toto; +** void to_uppercase(void*); +** +** toto = ft_lstnew("a"); +** toto->next = ft_lstnew("b"); +** toto->next->next = ft_lstnew("c"); +** printf("toto->data :%c\n",*(char*)(toto->content)); +** printf("toto->nxt->data :%c\n",*(char*)(toto->next->content)); +** printf("toto->nxt->nxt->data:%c\n",*(char*)(toto->next->next->content)); +** printf("toto->nxt->nxt->nxt :%s\n",(char*)(toto->next->next->next)); +** printf("---------------------------\n"); +** ft_lstiter(toto, to_uppercase); +** printf("toto->data :%c\n",*(char*)(toto->content)); +** printf("toto->nxt->data :%c\n",*(char*)(toto->next->content)); +** printf("toto->nxt->nxt->data:%c\n",*(char*)(toto->next->next->content)); +** printf("toto->nxt->nxt->nxt :%s\n",(char*)(toto->next->next->next)); +** return (0); +** } +*/ + +#include "libft.h" + +void ft_lstiter(t_list *lst, void (*f)(void *)) +{ + if (!lst) + return ; + if (lst->next) + ft_lstiter(lst->next, f); + f(lst); +} diff --git a/srcs/bonus/lstclear.c b/srcs/bonus/lstclear.c index bbe792d..11161dd 100644 --- a/srcs/bonus/lstclear.c +++ b/srcs/bonus/lstclear.c @@ -1,15 +1,3 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstdel.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: hulamy +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2018/11/14 21:10:49 by hulamy #+# #+# */ -/* Updated: 2018/11/16 13:59:10 by hulamy ### ########.fr */ -/* */ -/* ************************************************************************** */ - #include "libft.h" void ft_lstdel(t_list **alst, void (*del)(void *, size_t)) @@ -18,3 +6,4 @@ void ft_lstdel(t_list **alst, void (*del)(void *, size_t)) ft_lstdel(&(*alst)->next, del); ft_lstdelone(alst, del); } + diff --git a/srcs/bonus/ft_lstdelone.c b/srcs/bonus/lstdelone.c similarity index 100% rename from srcs/bonus/ft_lstdelone.c rename to srcs/bonus/lstdelone.c diff --git a/srcs/bonus/lstiter.c b/srcs/bonus/lstiter.c deleted file mode 100644 index 0f791be..0000000 --- a/srcs/bonus/lstiter.c +++ /dev/null @@ -1,22 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstiter.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: hulamy +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2018/11/14 21:11:14 by hulamy #+# #+# */ -/* Updated: 2018/11/16 14:01:10 by hulamy ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft.h" - -void ft_lstiter(t_list *lst, void (*f)(t_list *elem)) -{ - if (!lst) - return ; - if (lst->next) - ft_lstiter(lst->next, f); - f(lst); -}