Skip to content

Commit 0540978

Browse files
author
Theo LEVAUFRE
committed
ft_strstr corrigé, plus que le fichier libft.h a normer et c'est bon
1 parent f324b8a commit 0540978

File tree

8 files changed

+62
-23
lines changed

8 files changed

+62
-23
lines changed

Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ SRC_FILES = ft_atoi.c \
6161
ft_lstdelone.c \
6262
ft_lstdel.c \
6363
ft_lstadd.c \
64-
ft_lstiter.c
64+
ft_lstad_end.c \
65+
ft_lstiter.c \
66+
ft_lstmap.c
6567

6668
OBJ_FILES = $(SRC_FILES:.c=.o)
6769

ft_lstad_end.c

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/* ************************************************************************** */
2+
/* */
3+
/* ::: :::::::: */
4+
/* ft_lstad_end.c :+: :+: :+: */
5+
/* +:+ +:+ +:+ */
6+
/* By: tlevaufr <[email protected]> +#+ +:+ +#+ */
7+
/* +#+#+#+#+#+ +#+ */
8+
/* Created: 2017/12/20 15:20:53 by tlevaufr #+# #+# */
9+
/* Updated: 2017/12/20 16:05:44 by tlevaufr ### ########.fr */
10+
/* */
11+
/* ************************************************************************** */
12+
13+
#include "libft.h"
14+
15+
void ft_lstad_end(t_list **alst, t_list *new)
16+
{
17+
t_list *ptr;
18+
19+
ptr = *alst;
20+
if (new)
21+
{
22+
while (ptr->next)
23+
ptr = ptr->next;
24+
ptr->next = new;
25+
new->next = NULL;
26+
}
27+
}

ft_lstadd.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: tlevaufr <[email protected]> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2017/12/19 21:32:34 by tlevaufr #+# #+# */
9-
/* Updated: 2017/12/19 22:15:41 by tlevaufr ### ########.fr */
9+
/* Updated: 2017/12/20 15:59:12 by tlevaufr ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

ft_lstiter.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: tlevaufr <[email protected]> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2017/12/19 21:47:03 by tlevaufr #+# #+# */
9-
/* Updated: 2017/12/19 22:15:38 by tlevaufr ### ########.fr */
9+
/* Updated: 2017/12/20 15:20:10 by tlevaufr ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

ft_lstmap.c

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,32 @@
66
/* By: tlevaufr <[email protected]> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2017/12/19 22:04:43 by tlevaufr #+# #+# */
9-
/* Updated: 2017/12/19 22:15:35 by tlevaufr ### ########.fr */
9+
/* Updated: 2017/12/20 16:07:23 by tlevaufr ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

1313
#include "libft.h"
1414

1515
t_list *ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem))
1616
{
17-
t_list *alst;
18-
17+
size_t i;
18+
t_list *new_lst;
19+
t_list **new_alst;
20+
21+
i = 0;
1922
while (lst)
2023
{
21-
ft_lstnew(
24+
if (i == 0)
25+
{
26+
new_lst = f(ft_lstnew(lst->content, lst->content_size));
27+
new_alst = &new_lst;
28+
new_lst->next = NULL;
29+
}
30+
else
31+
ft_lstad_end(new_alst, f(ft_lstnew(lst->content, \
32+
lst->content_size)));
33+
i++;
34+
lst = lst->next;
2235
}
36+
return (*new_alst);
2337
}

ft_lstnew.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: tlevaufr <[email protected]> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2017/12/19 17:06:17 by tlevaufr #+# #+# */
9-
/* Updated: 2017/12/19 22:15:43 by tlevaufr ### ########.fr */
9+
/* Updated: 2017/12/20 15:59:19 by tlevaufr ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

ft_strstr.c

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: tlevaufr <[email protected]> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2017/11/13 16:51:53 by tlevaufr #+# #+# */
9-
/* Updated: 2017/12/05 00:43:29 by tlevaufr ### ########.fr */
9+
/* Updated: 2017/12/29 19:22:34 by tlevaufr ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

@@ -16,25 +16,19 @@ char *ft_strstr(const char *str, const char *to_find)
1616
{
1717
size_t i;
1818
size_t j;
19-
size_t tries;
19+
size_t needle_size;
2020

2121
i = 0;
22-
j = 0;
23-
tries = 0;
24-
if (to_find[j] == 0)
22+
needle_size = ft_strlen((char*)to_find);
23+
if (!(*to_find))
2524
return ((char *)str);
2625
while (str[i])
2726
{
28-
while (to_find[j] == str[i] && to_find[j] && str[i++])
27+
j = 0;
28+
while (str[i + j] && to_find[j] && to_find[j] == str[i + j])
2929
j++;
30-
tries++;
31-
if (to_find[j])
32-
{
33-
j = 0;
34-
i = 0 + tries;
35-
}
36-
else
37-
return ((char *)&str[i - j]);
30+
if (j == needle_size)
31+
return ((char *)&str[i]);
3832
i++;
3933
}
4034
return (NULL);

libft.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: tlevaufr <[email protected]> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2017/11/09 17:37:14 by tlevaufr #+# #+# */
9-
/* Updated: 2017/12/19 21:58:34 by tlevaufr ### ########.fr */
9+
/* Updated: 2017/12/29 15:24:10 by tlevaufr ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

@@ -87,6 +87,8 @@ t_list *ft_lstnew(void const *content, size_t content_size);
8787
void ft_lstdelone(t_list **alst, void (*del)(void *, size_t));
8888
void ft_lstdel(t_list **alst, void (*del)(void *, size_t));
8989
void ft_lstadd(t_list **alst, t_list *new);
90+
void ft_lstad_end(t_list **alst, t_list *new);
9091
void ft_lstiter(t_list *lst, void (*f)(t_list *elem));
92+
t_list *ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem));
9193

9294
#endif

0 commit comments

Comments
 (0)