From 07cde56d869f70d891245a671d9dea5fa7e1e94d Mon Sep 17 00:00:00 2001 From: kinou Date: Fri, 11 Dec 2020 17:19:05 +0100 Subject: [PATCH] push --- Makefile | 66 +++++++++++++++++++++++++++++++++++++++++++ ft_atoi.c | 2 +- ft_bzero.c | 2 +- ft_calloc.c | 2 +- ft_isalnum.c | 2 +- ft_isalpha.c | 7 ++--- ft_isascii.c | 2 +- ft_isdigit.c | 2 +- ft_isprint.c | 2 +- ft_itoa.c | 5 ++-- ft_lstadd_back.c | 21 ++++++++++++++ ft_lstadd_front.c | 17 +++++++++++ ft_lstclear.c | 29 +++++++++++++++++++ ft_lstdelone.c | 21 ++++++++++++++ ft_lstiter.c | 22 +++++++++++++++ ft_lstlast.c | 22 +++++++++++++++ ft_lstmap.c | 32 +++++++++++++++++++++ ft_lstnew.c | 25 ++++++++++++++++ ft_lstsize.c | 26 +++++++++++++++++ ft_memccpy.c | 2 +- ft_memchr.c | 5 ++-- ft_memcmp.c | 8 +++--- ft_memcpy.c | 8 +++--- ft_memmove.c | 2 +- ft_memset.c | 8 +++--- ft_putchar_fd.c | 18 ++++++++++++ ft_putendl_fd.c | 21 ++++++++++++++ ft_putnbr_fd.c | 30 ++++++++++++++++++++ ft_putstr_fd.c | 20 +++++++++++++ ft_split.c | 56 ++++++++++++++++++------------------ ft_strchr.c | 6 ++-- ft_strdup.c | 2 +- ft_strjoin.c | 18 ++++++++++-- ft_strlcat.c | 2 +- ft_strlcpy.c | 6 ++-- ft_strlen.c | 2 +- ft_strmapi.c | 30 ++++++++++++++++++++ ft_strncmp.c | 2 +- ft_strnstr.c | 8 +++--- ft_strrchr.c | 6 ++-- ft_strtrim.c | 12 ++++---- ft_substr.c | 2 +- ft_tolower.c | 2 +- ft_toupper.c | 2 +- libft.h | 72 +++++++++++++++++++++++++++++++++++++++++++++++ 45 files changed, 570 insertions(+), 87 deletions(-) create mode 100644 Makefile create mode 100644 ft_lstadd_back.c create mode 100644 ft_lstadd_front.c create mode 100644 ft_lstclear.c create mode 100644 ft_lstdelone.c create mode 100644 ft_lstiter.c create mode 100644 ft_lstlast.c create mode 100644 ft_lstmap.c create mode 100644 ft_lstnew.c create mode 100644 ft_lstsize.c create mode 100644 ft_putchar_fd.c create mode 100644 ft_putendl_fd.c create mode 100644 ft_putnbr_fd.c create mode 100644 ft_putstr_fd.c create mode 100644 ft_strmapi.c create mode 100644 libft.h diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..092636c --- /dev/null +++ b/Makefile @@ -0,0 +1,66 @@ +NAME = libft.a +SRCS = ft_memset.c \ + ft_bzero.c \ + ft_memcpy.c \ + ft_memccpy.c \ + ft_memmove.c \ + ft_memchr.c \ + ft_memcmp.c \ + ft_strlen.c \ + ft_isalpha.c \ + ft_isdigit.c \ + ft_isalnum.c \ + ft_isascii.c \ + ft_isprint.c \ + ft_toupper.c \ + ft_tolower.c \ + ft_strchr.c \ + ft_strrchr.c \ + ft_strncmp.c \ + ft_strlcpy.c \ + ft_strlcat.c \ + ft_strnstr.c \ + ft_atoi.c \ + ft_calloc.c \ + ft_strdup.c \ + ft_substr.c \ + ft_strjoin.c \ + ft_strtrim.c \ + ft_split.c \ + ft_itoa.c \ + ft_strmapi.c \ + ft_putchar_fd.c \ + ft_putstr_fd.c \ + ft_putendl_fd.c \ + ft_putnbr_fd.c +OBJS = ${SRCS:.c=.o} +BONUS_C = ft_lstnew.c ft_lstadd_front.c ft_lstsize.c ft_lstlast.c ft_lstadd_back.c \ + ft_lstdelone.c ft_lstclear.c ft_lstiter.c ft_lstmap.c +BONUS_O = ${BONUS_C:.c=.o} +CC = gcc +CFLAGS = -Wall -Wextra -Werror +RM = rm -rf + +.c.o: + ${CC} ${CFLAGS} -c $< -o ${<:.c=.o} + +${NAME}:${OBJS} + ar -rcs ${NAME} ${OBJS} + +all: ${NAME} + +bonus: all + ${CC} ${CFLAGS} -c ${BONUS_C} + ar -rcs ${NAME} ${BONUS_O} + +clean: + ${RM} ${OBJS} + ${RM} ${BONUS_O} + +fclean: clean + ${RM} ${NAME} + +re: fclean all + +.PHONY: all clean fclean re bonus + diff --git a/ft_atoi.c b/ft_atoi.c index e25c0a9..2f59458 100644 --- a/ft_atoi.c +++ b/ft_atoi.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -#include +#include "libft.h" int ft_atoi(const char *nptr) { diff --git a/ft_bzero.c b/ft_bzero.c index e1742a7..6480413 100644 --- a/ft_bzero.c +++ b/ft_bzero.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -#include +#include "libft.h" void ft_bzero(void *s, size_t n) { diff --git a/ft_calloc.c b/ft_calloc.c index f5c89fd..4b7d609 100644 --- a/ft_calloc.c +++ b/ft_calloc.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -#include +#include "libft.h" void *ft_calloc(size_t nmemb, size_t size) { diff --git a/ft_isalnum.c b/ft_isalnum.c index 4471c04..69f6093 100644 --- a/ft_isalnum.c +++ b/ft_isalnum.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -#include +#include "libft.h" int ft_isalnum(int c) { diff --git a/ft_isalpha.c b/ft_isalpha.c index 08ddded..af8d29e 100644 --- a/ft_isalpha.c +++ b/ft_isalpha.c @@ -6,17 +6,14 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:10:17 by apommier #+# #+# */ -/* Updated: 2020/11/29 17:04:28 by apommier ### ########.fr */ +/* Updated: 2020/12/11 15:44:14 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" int ft_isalpha(int c) { - char c; - - ch = (char)c; if ((c > 64 && c < 90) || (c > 96 && c < 122)) return (c); else diff --git a/ft_isascii.c b/ft_isascii.c index d0688db..ca31d76 100644 --- a/ft_isascii.c +++ b/ft_isascii.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -#include +#include "libft.h" int ft_isascii(int c) { diff --git a/ft_isdigit.c b/ft_isdigit.c index 1d3497a..863ad17 100644 --- a/ft_isdigit.c +++ b/ft_isdigit.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -#include +#include "libft.h" int ft_isdigit(int c) { diff --git a/ft_isprint.c b/ft_isprint.c index a54016e..4c959a3 100644 --- a/ft_isprint.c +++ b/ft_isprint.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -#include +#include "libft.h" int ft_isprint(int c) { diff --git a/ft_itoa.c b/ft_itoa.c index ca1a88e..d0d73c8 100644 --- a/ft_itoa.c +++ b/ft_itoa.c @@ -6,11 +6,11 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/12/08 18:20:19 by apommier #+# #+# */ -/* Updated: 2020/12/08 19:00:08 by apommier ### ########.fr */ +/* Updated: 2020/12/11 15:32:12 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" char *fill(long n, int j, int minus) { @@ -41,7 +41,6 @@ char *ft_itoa(int n) minus = 0; i = 1; j = 0; - if (n < 0) { minus = 1; diff --git a/ft_lstadd_back.c b/ft_lstadd_back.c new file mode 100644 index 0000000..87c0a15 --- /dev/null +++ b/ft_lstadd_back.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstadd_back.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/09 19:30:14 by apommier #+# #+# */ +/* Updated: 2020/12/11 15:32:53 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_lstadd_back(t_list **alst, t_list *new) +{ + if (*alst == 0) + *alst = new; + else + ft_lstlast(*alst)->next = new; +} diff --git a/ft_lstadd_front.c b/ft_lstadd_front.c new file mode 100644 index 0000000..18314c9 --- /dev/null +++ b/ft_lstadd_front.c @@ -0,0 +1,17 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstadd_front.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/09 01:31:45 by apommier #+# #+# */ +/* Updated: 2020/12/09 18:57:02 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +void ft_lstadd_front(t_list **alst, t_list *new) +{ + new->next = *alst; + *alst = new; +} diff --git a/ft_lstclear.c b/ft_lstclear.c new file mode 100644 index 0000000..e236992 --- /dev/null +++ b/ft_lstclear.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstclear.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/09 19:58:04 by apommier #+# #+# */ +/* Updated: 2020/12/10 23:26:47 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_lstclear(t_list **lst, void (*del)(void*)) +{ + t_list *chr; + t_list *chr2; + + chr = *lst; + while (chr) + { + chr2 = chr->next; + *del(chr->content); + free(chr); + chr = chr2; + } + lst = 0; +} diff --git a/ft_lstdelone.c b/ft_lstdelone.c new file mode 100644 index 0000000..8d9d0ce --- /dev/null +++ b/ft_lstdelone.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstdelone.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/09 19:54:40 by apommier #+# #+# */ +/* Updated: 2020/12/11 15:30:43 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_lstdelone(t_list *lst, void (*del)(void*)); +{ + if (!lst) + return; + *del(lst->content); + free(lst); +} diff --git a/ft_lstiter.c b/ft_lstiter.c new file mode 100644 index 0000000..d15c785 --- /dev/null +++ b/ft_lstiter.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstiter.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/09 20:14:47 by apommier #+# #+# */ +/* Updated: 2020/12/11 00:43:59 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_lstiter(t_list *lst, void (*f)(void *)) +{ + while (lst) + { + *f(lst->content); + lst = lst->next; + } +} diff --git a/ft_lstlast.c b/ft_lstlast.c new file mode 100644 index 0000000..86780c3 --- /dev/null +++ b/ft_lstlast.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstlast.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/09 19:16:55 by apommier #+# #+# */ +/* Updated: 2020/12/09 19:21:54 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +t_list *ft_lstlast(t_list *lst) +{ + if (!lst) + return (0); + while (lst->next) + lst = lst->next; + return (lst); +} diff --git a/ft_lstmap.c b/ft_lstmap.c new file mode 100644 index 0000000..b6ca05d --- /dev/null +++ b/ft_lstmap.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstmap.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/11 00:10:12 by apommier #+# #+# */ +/* Updated: 2020/12/11 01:55:51 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)) +{ + t_list *new; + t_list *begin; + + while (lst) + { + new = ft_lstnew(*f(lst->content)); + if (!new) + { + ft_lstclear(&begin, *del); + return (0); + } + ft_lstadd_back(&begin, new); + lst = lst->next; + } + return (begin); +} diff --git a/ft_lstnew.c b/ft_lstnew.c new file mode 100644 index 0000000..294171f --- /dev/null +++ b/ft_lstnew.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstnew.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/09 01:06:20 by apommier #+# #+# */ +/* Updated: 2020/12/09 01:31:00 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include ""libft.h"" + +t_list *ft_lstnew(void *content) +{ + t_list *new; + + new = (t_list)malloc(sizeof(t_list)); + if (!new) + return (0); + new->content = content; + new->next = 0; + return (new); +} diff --git a/ft_lstsize.c b/ft_lstsize.c new file mode 100644 index 0000000..2f6aebe --- /dev/null +++ b/ft_lstsize.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstsize.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/09 03:24:50 by apommier #+# #+# */ +/* Updated: 2020/12/11 15:33:49 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_lstsize(t_list *lst) +{ + int i; + + i = 0; + while (lst) + { + lst = lst->next; + i++; + } + return (i); +} diff --git a/ft_memccpy.c b/ft_memccpy.c index 2e2ee9b..017cd6e 100644 --- a/ft_memccpy.c +++ b/ft_memccpy.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -#include +#include "libft.h" void *ft_memccpy(void *dest, const void *src, int c, size_t n) { diff --git a/ft_memchr.c b/ft_memchr.c index c780954..bdc3371 100644 --- a/ft_memchr.c +++ b/ft_memchr.c @@ -6,11 +6,11 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:11:39 by apommier #+# #+# */ -/* Updated: 2020/11/29 17:05:45 by apommier ### ########.fr */ +/* Updated: 2020/12/11 16:04:15 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" void *ft_memchr(const void *s, int c, size_t n) { @@ -24,4 +24,5 @@ void *ft_memchr(const void *s, int c, size_t n) n--; str++; } + return (0); } diff --git a/ft_memcmp.c b/ft_memcmp.c index a4c1e42..a5ecb43 100644 --- a/ft_memcmp.c +++ b/ft_memcmp.c @@ -6,11 +6,11 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:11:51 by apommier #+# #+# */ -/* Updated: 2020/11/29 17:05:58 by apommier ### ########.fr */ +/* Updated: 2020/12/11 16:11:54 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" int ft_memcmp(const void *s1, const void *s2, size_t n) { @@ -19,8 +19,8 @@ int ft_memcmp(const void *s1, const void *s2, size_t n) i = 0; while (n) { - if (s1[i] != s2[i]) - return (s1[i] - s2[i]); + if (((char*)s1)[i] != ((char*)s2)[i]) + return (((char*)s1)[i] - ((char*)s2)[i]); n--; i++; } diff --git a/ft_memcpy.c b/ft_memcpy.c index eec893e..16f1d89 100644 --- a/ft_memcpy.c +++ b/ft_memcpy.c @@ -6,11 +6,11 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:12:03 by apommier #+# #+# */ -/* Updated: 2020/11/29 17:06:29 by apommier ### ########.fr */ +/* Updated: 2020/12/11 15:51:47 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" void *ft_memcpy(void *dest, const void *src, size_t n) { @@ -19,8 +19,8 @@ void *ft_memcpy(void *dest, const void *src, size_t n) int i; i = 0; - p = (char*)dest; - p2 = (char*)src; + p = (unsigned char*)dest; + p2 = (unsigned char*)src; while (n > 0) { n--; diff --git a/ft_memmove.c b/ft_memmove.c index 6e911a4..a4ab982 100644 --- a/ft_memmove.c +++ b/ft_memmove.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -#include +#include "libft.h" void *ft_memmove(void *dest, const void *src, size_t n) { diff --git a/ft_memset.c b/ft_memset.c index 5394f0c..da16346 100644 --- a/ft_memset.c +++ b/ft_memset.c @@ -6,16 +6,16 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:12:24 by apommier #+# #+# */ -/* Updated: 2020/11/29 17:08:00 by apommier ### ########.fr */ +/* Updated: 2020/12/11 15:48:06 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" void *ft_memset(void *s, int c, size_t n) { - int i; - char *p; + int i; + unsigned char *p; i = 0; p = (unsigned char*)s; diff --git a/ft_putchar_fd.c b/ft_putchar_fd.c new file mode 100644 index 0000000..96abcb5 --- /dev/null +++ b/ft_putchar_fd.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putchar_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/08 23:11:29 by apommier #+# #+# */ +/* Updated: 2020/12/11 17:02:13 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_putchar_fd(char c, int fd) +{ + write(fd, &c, 1); +} diff --git a/ft_putendl_fd.c b/ft_putendl_fd.c new file mode 100644 index 0000000..a663173 --- /dev/null +++ b/ft_putendl_fd.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putendl_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/08 23:22:10 by apommier #+# #+# */ +/* Updated: 2020/12/11 17:14:52 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_putendl_fd(char *s, int fd) +{ + if (s == 0) + return ; + write(fd, s, ft_strlen(s)); + ft_putchar_fd('\n', fd); +} diff --git a/ft_putnbr_fd.c b/ft_putnbr_fd.c new file mode 100644 index 0000000..7573a65 --- /dev/null +++ b/ft_putnbr_fd.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putnbr_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/08 23:25:57 by apommier #+# #+# */ +/* Updated: 2020/12/11 17:10:10 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_putnbr_fd(int n, int fd) +{ + long nbr; + + nbr = n; + if (nbr < 0) + { + ft_putchar_fd('-', fd); + nbr *= -1; + } + if (nbr >= 10) + ft_putnbr_fd(nbr / 10, fd); + ft_putchar_fd(nbr % 10 + '0', fd); + if (nbr < 10) + ft_putchar_fd(nbr + '0', fd); +} diff --git a/ft_putstr_fd.c b/ft_putstr_fd.c new file mode 100644 index 0000000..61fb28a --- /dev/null +++ b/ft_putstr_fd.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putstr_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/08 23:15:25 by apommier #+# #+# */ +/* Updated: 2020/12/11 17:15:10 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void ft_putstr_fd(char *s, int fd) +{ + if (s == 0) + return ; + write(fd, s, ft_strlen(s)); +} diff --git a/ft_split.c b/ft_split.c index 9b888f4..61e6038 100644 --- a/ft_split.c +++ b/ft_split.c @@ -6,33 +6,11 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/12/07 00:54:12 by apommier #+# #+# */ -/* Updated: 2020/12/07 00:54:20 by apommier ### ########.fr */ +/* Updated: 2020/12/11 16:27:08 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ -#include -#include - -int call(char *s, char c, char **dest, int j) -{ - int i; - - i = 0; - while (j > i) - { - if (fill_tab(*s, c, dest[i])) - j--; - else - { - while (i - 1) - { - free(dest[i - 1]); - } - free(dest); - } - i++; - } -} +#include "libft.h" int fill_tab(char *s, char c, char *dest) { @@ -41,7 +19,7 @@ int fill_tab(char *s, char c, char *dest) i = 0; while (s[i] != c || s[i]) i++; - dest = (char*)ft_calloc(i + 1, sizeof(char)) + dest = (char*)ft_calloc(i + 1, sizeof(char)); if (dest == 0) return (0); i = 0; @@ -54,6 +32,27 @@ int fill_tab(char *s, char c, char *dest) return (1); } +void call(char *s, char c, char **dest, int j) +{ + int i; + + i = 0; + while (j > i) + { + if (fill_tab(s, c, dest[i])) + j--; + else + { + while (i - 1) + { + free(dest[i - 1]); + } + free(dest); + } + i++; + } +} + char **ft_split(char const *s, char c) { int i; @@ -70,8 +69,9 @@ char **ft_split(char const *s, char c) j++; i++; } - dest = (char**)malloc(sizeof(char*) * j) + dest = (char**)malloc(sizeof(char*) * j); if (dest == 0) - return (0) - call(*s, c, **dest, j); + return (0); + call((char*)s, c, dest, j); + return (dest); } diff --git a/ft_strchr.c b/ft_strchr.c index 4eab22f..f815eb7 100644 --- a/ft_strchr.c +++ b/ft_strchr.c @@ -6,17 +6,17 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:12:32 by apommier #+# #+# */ -/* Updated: 2020/11/29 17:08:24 by apommier ### ########.fr */ +/* Updated: 2020/12/11 16:14:37 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" char *ft_strchr(const char *s, int c) { char *str; - str = s; + str = (char*)s; while ((*str != c) || (*str != 0)) str++; if (*str == c) diff --git a/ft_strdup.c b/ft_strdup.c index 507a4c3..2ec8ef0 100644 --- a/ft_strdup.c +++ b/ft_strdup.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -#include +#include "libft.h" char *ft_strdup(const char *s) { diff --git a/ft_strjoin.c b/ft_strjoin.c index 0f87508..8330bd5 100644 --- a/ft_strjoin.c +++ b/ft_strjoin.c @@ -1,3 +1,17 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strjoin.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/11 15:38:13 by apommier #+# #+# */ +/* Updated: 2020/12/11 16:20:03 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + char *ft_strjoin(char const *s1, char const *s2) { char *dest; @@ -6,7 +20,7 @@ char *ft_strjoin(char const *s1, char const *s2) i = 0; j = 0; - dest = malloc(sizeof(char) * (ft_strlen(s1) + ft_strlen(s2) + 1)); + dest = (char*)malloc(sizeof(char) * (ft_strlen(s1) + ft_strlen(s2) + 1)); if (dest == 0) return (0); while (s1[i]) @@ -16,7 +30,7 @@ char *ft_strjoin(char const *s1, char const *s2) i++; } i = 0; - while(s2[i]) + while (s2[i]) { dest[j] = s2[i]; j++; diff --git a/ft_strlcat.c b/ft_strlcat.c index 33be43a..46c996a 100644 --- a/ft_strlcat.c +++ b/ft_strlcat.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -#include +#include "libft.h" size_t ft_strlcat(char *dst, const char *src, size_t size) { diff --git a/ft_strlcpy.c b/ft_strlcpy.c index e02ef7a..9a6b62a 100644 --- a/ft_strlcpy.c +++ b/ft_strlcpy.c @@ -6,11 +6,11 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:13:07 by apommier #+# #+# */ -/* Updated: 2020/11/29 17:11:24 by apommier ### ########.fr */ +/* Updated: 2020/12/11 16:16:21 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" size_t ft_strlcpy(char *dst, const char *src, size_t size) { @@ -19,7 +19,7 @@ size_t ft_strlcpy(char *dst, const char *src, size_t size) j = 0; i = 0; - while (scr[i]) + while (src[i]) i++; while (size - 1 && src[j] != 0) { diff --git a/ft_strlen.c b/ft_strlen.c index b8161c5..c4bad3d 100644 --- a/ft_strlen.c +++ b/ft_strlen.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -#include +#include "libft.h" size_t ft_strlen(const char *s) { diff --git a/ft_strmapi.c b/ft_strmapi.c new file mode 100644 index 0000000..23d8632 --- /dev/null +++ b/ft_strmapi.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strmapi.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/08 19:03:09 by apommier #+# #+# */ +/* Updated: 2020/12/11 16:27:53 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strmapi(char const *s, char (*f)(unsigned int, char)) +{ + char *dest; + int i; + + i = 0; + dest = (char*)calloc(ft_strlen(s) + 1, sizeof(char)); + if (!dest) + return (0); + while (s[i]) + { + dest[i] = f(i, s[i]); + i++; + } + return (dest); +} diff --git a/ft_strncmp.c b/ft_strncmp.c index d01179c..4d0096b 100644 --- a/ft_strncmp.c +++ b/ft_strncmp.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -#include +#include "libft.h" int ft_strncmp(const char *s1, const char *s2, size_t n) { diff --git a/ft_strnstr.c b/ft_strnstr.c index 65fbf77..fed8561 100644 --- a/ft_strnstr.c +++ b/ft_strnstr.c @@ -6,11 +6,11 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:13:42 by apommier #+# #+# */ -/* Updated: 2020/11/29 17:20:11 by apommier ### ########.fr */ +/* Updated: 2020/12/11 16:17:45 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" char *ft_strnstr(const char *big, const char *little, size_t len) { @@ -19,7 +19,7 @@ char *ft_strnstr(const char *big, const char *little, size_t len) i = 0; if (little[i] == 0) - return (big); + return ((char*)big); while (big[i] && len - i) { j = 0; @@ -30,7 +30,7 @@ char *ft_strnstr(const char *big, const char *little, size_t len) while (little[j] == big[i + j] && little[j] && len - i - j) j++; if (little[j] == 0) - return (&big[i]); + return ((char*)&big[i]); } } return (0); diff --git a/ft_strrchr.c b/ft_strrchr.c index 861c8e9..44cff07 100644 --- a/ft_strrchr.c +++ b/ft_strrchr.c @@ -6,11 +6,11 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:13:52 by apommier #+# #+# */ -/* Updated: 2020/11/29 17:20:30 by apommier ### ########.fr */ +/* Updated: 2020/12/11 16:15:25 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" char *ft_strrchr(const char *s, int c) { @@ -18,7 +18,7 @@ char *ft_strrchr(const char *s, int c) char *last; last = 0; - str = s; + str = (char*)s; while (*str != 0) { if (*str == c) diff --git a/ft_strtrim.c b/ft_strtrim.c index aeba13a..f86400d 100644 --- a/ft_strtrim.c +++ b/ft_strtrim.c @@ -6,15 +6,15 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 23:52:05 by apommier #+# #+# */ -/* Updated: 2020/12/02 19:29:33 by apommier ### ########.fr */ +/* Updated: 2020/12/11 16:21:55 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" static int is_set(char const *set, char c) { - int i; + int i; i = 0; while (set[i]) @@ -25,7 +25,7 @@ static int is_set(char const *set, char c) return (0); } -char *ft_strtrim(char const *s1, char const *set) +char *ft_strtrim(char const *s1, char const *set) { int j; int i; @@ -44,9 +44,9 @@ char *ft_strtrim(char const *s1, char const *set) if (dest == 0) return (0); j = 0; - while (s[i] && len - j) + while (s1[i] && len - j) { - dest[j] = s[i]; + dest[j] = s1[i]; i++; j++; } diff --git a/ft_substr.c b/ft_substr.c index d4533b3..d23df28 100644 --- a/ft_substr.c +++ b/ft_substr.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -#include +#include "libft.h" char *ft_substr(char const *s, unsigned int start, size_t len) { diff --git a/ft_tolower.c b/ft_tolower.c index 3710bcc..d375233 100644 --- a/ft_tolower.c +++ b/ft_tolower.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -#include +#include "libft.h" int ft_tolower(int c) { diff --git a/ft_toupper.c b/ft_toupper.c index 9a8153b..e8c8d89 100644 --- a/ft_toupper.c +++ b/ft_toupper.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -#include +#include "libft.h" int ft_toupper(int c) { diff --git a/libft.h b/libft.h new file mode 100644 index 0000000..53996da --- /dev/null +++ b/libft.h @@ -0,0 +1,72 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* libft.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/11 03:21:27 by apommier #+# #+# */ +/* Updated: 2020/12/11 15:43:19 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef LIBFT_H +# define LIBFT_H + +# include +# include + +typedef struct s_list +{ + void *content; + struct s_list *next; +} t_list; + +void *ft_memset(void *s, int c, size_t n); +void ft_bzero(void *s, size_t n); +void *ft_memcpy(void *dest, const void *src, size_t n); +void *ft_memccpy(void *dest, const void *src, int c, size_t n); +void *ft_memmove(void *dest, const void *src, size_t n); +void *ft_memchr(const void *s, int c, size_t n); +int ft_memcmp(const void *s1, const void *s2, size_t n); +size_t ft_strlen(const char *s); +int ft_isalpha(int c); +int ft_isdigit(int c); +int ft_isalnum(int c); +int ft_isascii(int c); +int ft_isprint(int c); +int ft_toupper(int c); +int ft_tolower(int c); +char *ft_strchr(const char *s, int c); +char *ft_strrchr(const char *s, int c); +int ft_strncmp(const char *s1, const char *s2, size_t n); +size_t ft_strlcpy(char *dst, const char *src, size_t size); +size_t ft_strlcat(char *dst, const char *src, size_t size); +char *ft_strnstr(const char *big, const char *little, size_t len); +int ft_atoi(const char *nptr); +void *ft_calloc(size_t nmenb, size_t size); +char *ft_strdup(const char *s); + +char *ft_substr(char const *s, unsigned int start, size_t len); +char *ft_strjoin(char const *s1, char const *s2); +char *ft_strtrim(char const *s1, char const *set); +char **ft_split(char const *s, char c); +char *ft_itoa(int n); +char *ft_strmapi(char const *s, char (*f)(unsigned int, char)); +void ft_putchar_fd(char c, int fd); +void ft_putstr_fd(char *s, int fd); +void ft_putendl_fd(char *s, int fd); +void ft_putnbr_fd(int n, int fd); + +t_list *ft_lstnew(void *content); +void ft_lstadd_front(t_list **alst, t_list *new); +int ft_lstsize(t_list *lst); +t_list *ft_lstlast(t_list *lst); +void ft_lstadd_back(t_list **alst, t_list *new); +void ft_lstdelone(t_list *lst, void (*del)(void *)); +void ft_lstclear(t_list **lst, void (*del)(void *)); +void ft_lstiter(t_list *lst, void (*f)(void *)); +t_list *ft_lstmap(t_list *lst, void *(*f)(void *), + void (*del)(void *)); + +#endif