diff --git a/Makefile b/Makefile index c1df701..5ef41ff 100644 --- a/Makefile +++ b/Makefile @@ -3,87 +3,94 @@ # ::: :::::::: # # Makefile :+: :+: :+: # # +:+ +:+ +:+ # -# By: adjoly +#+ +:+ +#+ # +# By: adjoly +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2023/11/01 11:03:22 by adjoly #+# #+# # -# Updated: 2023/11/14 10:30:27 by adjoly ### ########.fr # +# Updated: 2024/02/04 15:03:34 by adjoly ### ########.fr # # # # **************************************************************************** # NAME = libft.a -CC = clang +CC = cc -SRCS = ft_atoi.c \ - ft_bzero.c \ - ft_isalnum.c \ - ft_isalpha.c \ - ft_isascii.c \ - ft_isdigit.c \ - ft_isprint.c \ - ft_putchar_fd.c \ - ft_putnbr_fd.c \ - ft_putstr_fd.c \ - ft_strdup.c \ - ft_memcpy.c \ - ft_memset.c \ - ft_memmove.c \ - ft_strlcpy.c \ - ft_strlen.c \ - ft_substr.c \ - ft_tolower.c \ - ft_toupper.c \ - ft_strlcat.c \ - ft_strjoin.c \ - ft_strncmp.c \ - ft_itoa.c \ - ft_calloc.c \ - ft_memchr.c \ - ft_memcmp.c \ - ft_strchr.c \ - ft_strrchr.c \ - ft_strnstr.c \ - ft_putendl_fd.c \ - ft_strtrim.c \ - ft_split.c \ - ft_strmapi.c \ - ft_striteri.c \ - -SRCS_BONUS= 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 \ +SRCS = is/ft_isalnum.c \ + is/ft_isalpha.c \ + is/ft_isascii.c \ + is/ft_isdigit.c \ + is/ft_isprint.c \ + lst/ft_lstadd_back.c \ + lst/ft_lstadd_front.c \ + lst/ft_lstclear.c \ + lst/ft_lstdelone.c \ + lst/ft_lstiter.c \ + lst/ft_lstlast.c \ + lst/ft_lstmap.c \ + lst/ft_lstnew.c \ + lst/ft_lstsize.c \ + mem/ft_bzero.c \ + mem/ft_calloc.c \ + mem/ft_memchr.c \ + mem/ft_memcmp.c \ + mem/ft_memcpy.c \ + mem/ft_memmove.c \ + mem/ft_memset.c \ + print/ft_putchar.c \ + print/ft_putchar_fd.c \ + print/ft_putendl_fd.c \ + print/ft_putnbrbase.c \ + print/ft_putnbrbase_fd.c \ + print/ft_putnbr.c \ + print/ft_putnbr_fd.c \ + print/ft_putstr.c \ + print/ft_putstr_fd.c \ + str/ft_atoi.c \ + str/ft_itoa.c \ + str/ft_split.c \ + str/ft_strchr.c \ + str/ft_strdup.c \ + str/ft_striteri.c \ + str/ft_strjoin.c \ + str/ft_strlcat.c \ + str/ft_strlcpy.c \ + str/ft_strlen.c \ + str/ft_strmapi.c \ + str/ft_strncmp.c \ + str/ft_strnstr.c \ + str/ft_strrchr.c \ + str/ft_strtrim.c \ + str/ft_substr.c \ + str/ft_tolower.c \ + str/ft_toupper.c \ OBJS = $(SRCS:.c=.o) -OBJS_BONUS = $(SRCS_BONUS:.c=.o) +FLAGS = -Werror -Wall -Wextra -g -FLAGS = -Werror -Wall -Wextra +HEADERS = libft.h -HEADER = libft.h +LIB = print/printf/libftprintf.a $(NAME): $(OBJS) + make -C io/get_next_line/ + make -C print/printf/ ar -rcs $(NAME) $(OBJS) %.o: %.c - $(CC) $(FLAGS) -I $(HEADER) $< -c -o $@ + $(CC) $(FLAGS) -I $(HEADERS) $< -c -o $@ all: $(NAME) -bonus: $(OBJS_BONUS) - ar -rcs $(NAME) $(OBJS_BONUS) - clean: - rm -f $(OBJS) $(OBJS_BONUS) + make -C io/get_next_line/ clean + make -C print/printf clean + rm -f $(OBJS) fclean: clean + make -C io/get_next_line/ fclean + make -C print/printf/ fclean rm -f $(NAME) re: fclean all -.PHONY: clean all re fclean \ No newline at end of file +.PHONY: clean all re fclean diff --git a/io/get_next_line/Makefile b/io/get_next_line/Makefile new file mode 100644 index 0000000..755ff9f --- /dev/null +++ b/io/get_next_line/Makefile @@ -0,0 +1,44 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: adjoly +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2023/11/01 11:03:22 by adjoly #+# #+# # +# Updated: 2024/02/04 14:54:32 by adjoly ### ########.fr # +# # +# **************************************************************************** # + +NAME = get_next_line.a + +CC = clang + +SRCS = get_next_line.c \ + get_next_line_utils.c \ + ../../mem/ft_calloc.c \ + ../../str/ft_strlen.c \ + +OBJS = $(SRCS:.c=.o) + +FLAGS = -Werror -Wall -Wextra + +HEADER = get_next_line.h + +$(NAME): $(OBJS) + ar -rcs $(NAME) $(OBJS) + +%.o: %.c + $(CC) $(FLAGS) -I $(HEADER) $< -c -o $@ + +all: $(NAME) + +clean: + rm -f $(OBJS) + +fclean: clean + rm -f $(NAME) + +re: fclean all + +.PHONY: clean all re fclean diff --git a/io/get_next_line/get_next_line.c b/io/get_next_line/get_next_line.c new file mode 100644 index 0000000..e554492 --- /dev/null +++ b/io/get_next_line/get_next_line.c @@ -0,0 +1,74 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_next_line.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/12/01 17:11:59 by adjoly #+# #+# */ +/* Updated: 2024/02/04 14:23:07 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "get_next_line.h" + +char check_line(char *res, char *buf) +{ + int i; + int j; + + i = 0; + j = 0; + while (res[i] && res[i] != '\n') + i++; + if (res[i] == '\n') + { + i++; + while (res[i]) + { + buf[j] = res[i]; + i++; + j++; + } + buf[j] = 0; + res[i - j] = 0; + return (1); + } + return (0); +} + +char *ft_read_error(char **buf, char *res) +{ + free(*buf); + *buf = NULL; + if (res[0] != 0) + return (res); + free(res); + return (NULL); +} + +char *get_next_line(int fd) +{ + static char *buf; + char *res; + ssize_t bytes_read; + + if (BUFFER_SIZE <= 0 || fd < 0 || fd > 1023) + return (NULL); + if (!buf) + buf = ft_calloc(sizeof(char), BUFFER_SIZE + 1); + res = ft_calloc(1, 1); + while (buf) + { + res = ft_strjoin_gnl(res, buf); + if (!res) + return (NULL); + if (check_line(res, buf)) + return (res); + bytes_read = read(fd, buf, BUFFER_SIZE); + if (bytes_read < 1) + return (ft_read_error(&buf, res)); + buf[bytes_read] = 0; + } + return (NULL); +} diff --git a/io/get_next_line/get_next_line.h b/io/get_next_line/get_next_line.h new file mode 100644 index 0000000..9046cc2 --- /dev/null +++ b/io/get_next_line/get_next_line.h @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_next_line.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/12/01 17:12:00 by adjoly #+# #+# */ +/* Updated: 2024/02/04 14:26:01 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef GET_NEXT_LINE_H +# define GET_NEXT_LINE_H + +# include +# include + +# ifndef BUFFER_SIZE +# define BUFFER_SIZE 1 +# endif + +char *get_next_line(int fd); +char *ft_strjoin_gnl(char *s1, char *s2); +void *ft_calloc(size_t nmemb, size_t size); +size_t ft_strlen(char *s); + +#endif diff --git a/io/get_next_line/get_next_line_utils.c b/io/get_next_line/get_next_line_utils.c new file mode 100644 index 0000000..038c68a --- /dev/null +++ b/io/get_next_line/get_next_line_utils.c @@ -0,0 +1,44 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_next_line_utils.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/12/01 17:12:02 by adjoly #+# #+# */ +/* Updated: 2024/02/04 14:24:58 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "get_next_line.h" + +char *ft_strjoin_gnl(char *s1, char *s2) +{ + char *result; + size_t i; + size_t j; + + i = 0; + j = 0; + if (!s2) + return (NULL); + result = ft_calloc((ft_strlen(s1) + ft_strlen(s2) + 1), sizeof(char)); + if (result == NULL) + return (NULL); + while (s1[i]) + { + result[i] = s1[i]; + i++; + } + while (s2[j]) + { + result[i] = s2[j]; + i++; + j++; + } + free(s1); + result[i] = '\0'; + return (result); +} + + diff --git a/io/get_next_line/objget_next_line.o b/io/get_next_line/objget_next_line.o new file mode 100644 index 0000000..734b398 Binary files /dev/null and b/io/get_next_line/objget_next_line.o differ diff --git a/io/get_next_line/objget_next_line_utils.o b/io/get_next_line/objget_next_line_utils.o new file mode 100644 index 0000000..c860114 Binary files /dev/null and b/io/get_next_line/objget_next_line_utils.o differ diff --git a/ft_isalnum.c b/is/ft_isalnum.c similarity index 100% rename from ft_isalnum.c rename to is/ft_isalnum.c diff --git a/ft_isalpha.c b/is/ft_isalpha.c similarity index 100% rename from ft_isalpha.c rename to is/ft_isalpha.c diff --git a/ft_isascii.c b/is/ft_isascii.c similarity index 100% rename from ft_isascii.c rename to is/ft_isascii.c diff --git a/ft_isdigit.c b/is/ft_isdigit.c similarity index 100% rename from ft_isdigit.c rename to is/ft_isdigit.c diff --git a/ft_isprint.c b/is/ft_isprint.c similarity index 100% rename from ft_isprint.c rename to is/ft_isprint.c diff --git a/libft.h.gch b/libft.h.gch deleted file mode 100644 index 5f74ba7..0000000 Binary files a/libft.h.gch and /dev/null differ diff --git a/ft_lstadd_back.c b/lst/ft_lstadd_back.c similarity index 82% rename from ft_lstadd_back.c rename to lst/ft_lstadd_back.c index f1c1b98..7a3cebb 100644 --- a/ft_lstadd_back.c +++ b/lst/ft_lstadd_back.c @@ -3,20 +3,20 @@ /* ::: :::::::: */ /* ft_lstadd_back.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/11 16:37:42 by adjoly #+# #+# */ -/* Updated: 2023/11/11 17:56:48 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:56:37 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void ft_lstadd_back(t_list **lst, t_list *new) { - if (lst == NULL) + if (!lst) return ; - if (*lst == NULL) + if (!*lst) { (*lst) = new; return ; diff --git a/ft_lstadd_front.c b/lst/ft_lstadd_front.c similarity index 82% rename from ft_lstadd_front.c rename to lst/ft_lstadd_front.c index 41bec2b..d9ea2a5 100644 --- a/ft_lstadd_front.c +++ b/lst/ft_lstadd_front.c @@ -3,20 +3,20 @@ /* ::: :::::::: */ /* ft_lstadd_front.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/11 15:39:25 by adjoly #+# #+# */ -/* Updated: 2023/11/11 15:50:06 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:57:01 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void ft_lstadd_front(t_list **lst, t_list *new) { - if (lst == NULL) + if (!lst) return ; - if (new == NULL) + if (!new) return ; new->next = *lst; *lst = new; diff --git a/ft_lstclear.c b/lst/ft_lstclear.c similarity index 86% rename from ft_lstclear.c rename to lst/ft_lstclear.c index c74554b..577838d 100644 --- a/ft_lstclear.c +++ b/lst/ft_lstclear.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_lstclear.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/11 18:05:14 by adjoly #+# #+# */ -/* Updated: 2023/11/12 16:19:59 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 13:55:17 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void ft_lstclear(t_list **lst, void (*del)(void *)) { diff --git a/ft_lstdelone.c b/lst/ft_lstdelone.c similarity index 85% rename from ft_lstdelone.c rename to lst/ft_lstdelone.c index 0c50109..0673766 100644 --- a/ft_lstdelone.c +++ b/lst/ft_lstdelone.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_lstdelone.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/11 17:59:39 by adjoly #+# #+# */ -/* Updated: 2023/11/12 15:33:38 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 13:55:19 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void ft_lstdelone(t_list *lst, void (*del)(void *)) { diff --git a/ft_lstiter.c b/lst/ft_lstiter.c similarity index 83% rename from ft_lstiter.c rename to lst/ft_lstiter.c index a9b1717..b31e412 100644 --- a/ft_lstiter.c +++ b/lst/ft_lstiter.c @@ -3,18 +3,18 @@ /* ::: :::::::: */ /* ft_lstiter.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/11 18:20:25 by adjoly #+# #+# */ -/* Updated: 2023/11/11 18:23:58 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:58:16 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void ft_lstiter(t_list *lst, void (*f)(void *)) { - if (lst == NULL || f == NULL) + if (!lst || !f) return ; while (lst) { diff --git a/ft_lstlast.c b/lst/ft_lstlast.c similarity index 84% rename from ft_lstlast.c rename to lst/ft_lstlast.c index f5c8f54..eee993f 100644 --- a/ft_lstlast.c +++ b/lst/ft_lstlast.c @@ -3,18 +3,18 @@ /* ::: :::::::: */ /* ft_lstlast.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/11 16:03:12 by adjoly #+# #+# */ -/* Updated: 2023/11/11 16:37:10 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:57:50 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" t_list *ft_lstlast(t_list *lst) { - if (lst == NULL) + if (!lst) return (NULL); while (lst->next) lst = lst->next; diff --git a/ft_lstmap.c b/lst/ft_lstmap.c similarity index 84% rename from ft_lstmap.c rename to lst/ft_lstmap.c index bb470ed..542dcfb 100644 --- a/ft_lstmap.c +++ b/lst/ft_lstmap.c @@ -3,21 +3,21 @@ /* ::: :::::::: */ /* ft_lstmap.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/11 18:24:49 by adjoly #+# #+# */ -/* Updated: 2023/11/11 18:38:51 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:58:45 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)) { t_list *res; t_list *tmp; - if (lst == NULL || f == NULL || del == NULL) + if (!lst || !f || !del) return (NULL); res = NULL; while (lst) diff --git a/ft_lstnew.c b/lst/ft_lstnew.c similarity index 84% rename from ft_lstnew.c rename to lst/ft_lstnew.c index 298e054..2543b70 100644 --- a/ft_lstnew.c +++ b/lst/ft_lstnew.c @@ -3,21 +3,21 @@ /* ::: :::::::: */ /* ft_lstnew.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/11 15:30:32 by adjoly #+# #+# */ -/* Updated: 2023/11/11 15:51:49 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:58:59 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" t_list *ft_lstnew(void *content) { t_list *lst; lst = malloc(sizeof(t_list)); - if (lst == NULL) + if (!lst) return (NULL); lst[0].content = content; lst[0].next = NULL; diff --git a/ft_lstsize.c b/lst/ft_lstsize.c similarity index 83% rename from ft_lstsize.c rename to lst/ft_lstsize.c index 62a77a5..a83cad4 100644 --- a/ft_lstsize.c +++ b/lst/ft_lstsize.c @@ -3,21 +3,21 @@ /* ::: :::::::: */ /* ft_lstsize.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/11 15:53:01 by adjoly #+# #+# */ -/* Updated: 2023/11/11 15:59:03 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:59:13 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" int ft_lstsize(t_list *lst) { int i; i = 0; - while (lst != NULL) + while (lst) { lst = lst->next; i++; diff --git a/ft_bzero.c b/mem/ft_bzero.c similarity index 84% rename from ft_bzero.c rename to mem/ft_bzero.c index c6902d8..5b968e8 100644 --- a/ft_bzero.c +++ b/mem/ft_bzero.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_bzero.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/03 11:58:03 by adjoly #+# #+# */ -/* Updated: 2023/11/03 12:03:51 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 13:55:51 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void ft_bzero(void *s, size_t n) { diff --git a/ft_calloc.c b/mem/ft_calloc.c similarity index 70% rename from ft_calloc.c rename to mem/ft_calloc.c index 77e79ff..a81f482 100644 --- a/ft_calloc.c +++ b/mem/ft_calloc.c @@ -3,27 +3,34 @@ /* ::: :::::::: */ /* ft_calloc.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/01 16:02:26 by adjoly #+# #+# */ -/* Updated: 2023/11/11 01:32:30 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:22:20 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" -#include +#include "../libft.h" void *ft_calloc(size_t nmemb, size_t size) { - void *result; + char *result; + size_t i; - if (size != 0 && nmemb != 0 && (nmemb * size) / nmemb != size) - return (NULL); + i = 0; if (nmemb == 0 || size == 0) return (malloc(1)); - result = malloc(size * nmemb); - if (result == NULL) + if (((unsigned long long)(size * nmemb) > 4294967295)) return (NULL); - ft_bzero(result, size * nmemb); + if ((int)size < 0 && (int)nmemb < 0) + return (NULL); + result = malloc(size * nmemb); + if (!result) + return (NULL); + while (i < (size * nmemb)) + { + *(unsigned char *)(result + i) = '\0'; + i++; + } return (result); } diff --git a/ft_memchr.c b/mem/ft_memchr.c similarity index 86% rename from ft_memchr.c rename to mem/ft_memchr.c index 188a661..93fe9f7 100644 --- a/ft_memchr.c +++ b/mem/ft_memchr.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_memchr.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/05 14:52:53 by adjoly #+# #+# */ -/* Updated: 2023/11/09 14:27:32 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:36:28 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void *ft_memchr(const void *s, int c, size_t n) { diff --git a/ft_memcmp.c b/mem/ft_memcmp.c similarity index 85% rename from ft_memcmp.c rename to mem/ft_memcmp.c index 9da23a1..13e96af 100644 --- a/ft_memcmp.c +++ b/mem/ft_memcmp.c @@ -3,15 +3,14 @@ /* ::: :::::::: */ /* ft_memcmp.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/08 12:04:48 by adjoly #+# #+# */ -/* Updated: 2023/11/09 14:06:17 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:36:46 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" -#include +#include "../libft.h" int ft_memcmp(const void *s1, const void *s2, size_t n) { diff --git a/ft_memcpy.c b/mem/ft_memcpy.c similarity index 84% rename from ft_memcpy.c rename to mem/ft_memcpy.c index 02015d9..9f89746 100644 --- a/ft_memcpy.c +++ b/mem/ft_memcpy.c @@ -3,21 +3,21 @@ /* ::: :::::::: */ /* ft_memcpy.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/02 10:21:55 by adjoly #+# #+# */ -/* Updated: 2023/11/04 14:13:12 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 15:00:19 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void *ft_memcpy(void *dest, const void *src, size_t n) { size_t i; i = 0; - if (src == NULL && dest == NULL) + if (!src && !dest) { return (dest); } diff --git a/ft_memmove.c b/mem/ft_memmove.c similarity index 87% rename from ft_memmove.c rename to mem/ft_memmove.c index fd5ed7a..41a4319 100644 --- a/ft_memmove.c +++ b/mem/ft_memmove.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_memmove.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/03 15:04:04 by adjoly #+# #+# */ -/* Updated: 2023/11/05 22:05:37 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:38:10 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void *ft_memmove(void *dest, const void *src, size_t n) { diff --git a/ft_memset.c b/mem/ft_memset.c similarity index 85% rename from ft_memset.c rename to mem/ft_memset.c index a9d8143..88c5805 100644 --- a/ft_memset.c +++ b/mem/ft_memset.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_memset.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/10/31 17:40:22 by adjoly #+# #+# */ -/* Updated: 2023/11/03 12:11:08 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:37:55 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void *ft_memset(void *s, int c, size_t n) { diff --git a/print/ft_putchar.c b/print/ft_putchar.c new file mode 100644 index 0000000..c44212a --- /dev/null +++ b/print/ft_putchar.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putchar.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/18 10:49:00 by adjoly #+# #+# */ +/* Updated: 2024/02/04 15:00:50 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putchar(char c) +{ + write(1, &c, 1); +} diff --git a/ft_putchar_fd.c b/print/ft_putchar_fd.c similarity index 84% rename from ft_putchar_fd.c rename to print/ft_putchar_fd.c index b644921..d421314 100644 --- a/ft_putchar_fd.c +++ b/print/ft_putchar_fd.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_putchar_fd.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/10/31 11:42:17 by adjoly #+# #+# */ -/* Updated: 2023/11/01 17:15:09 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:39:21 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void ft_putchar_fd(char c, int fd) { diff --git a/ft_putendl_fd.c b/print/ft_putendl_fd.c similarity index 85% rename from ft_putendl_fd.c rename to print/ft_putendl_fd.c index 00bfae5..e20921c 100644 --- a/ft_putendl_fd.c +++ b/print/ft_putendl_fd.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_putendl_fd.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/09 19:12:00 by adjoly #+# #+# */ -/* Updated: 2023/11/09 19:15:50 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:40:09 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void ft_putendl_fd(char *s, int fd) { diff --git a/ft_putnbr.c b/print/ft_putnbr.c similarity index 84% rename from ft_putnbr.c rename to print/ft_putnbr.c index d50499e..7f81301 100644 --- a/ft_putnbr.c +++ b/print/ft_putnbr.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_putnbr.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/18 11:14:22 by adjoly #+# #+# */ -/* Updated: 2023/11/18 11:35:19 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:41:11 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void ft_putnbr(int n) { diff --git a/ft_putnbr_fd.c b/print/ft_putnbr_fd.c similarity index 87% rename from ft_putnbr_fd.c rename to print/ft_putnbr_fd.c index 5c3f7fd..2c389c6 100644 --- a/ft_putnbr_fd.c +++ b/print/ft_putnbr_fd.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_putnbr_fd.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/10/31 11:52:46 by adjoly #+# #+# */ -/* Updated: 2023/11/03 19:17:27 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:42:15 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void ft_putnbr_fd(int n, int fd) { diff --git a/ft_putnbrbase.c b/print/ft_putnbrbase.c similarity index 84% rename from ft_putnbrbase.c rename to print/ft_putnbrbase.c index b7069ee..8d9e48a 100644 --- a/ft_putnbrbase.c +++ b/print/ft_putnbrbase.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_putnbrbase.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/18 11:13:15 by adjoly #+# #+# */ -/* Updated: 2023/11/18 11:14:01 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 15:01:31 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void ft_putnbrbase(int n, char *base) { diff --git a/ft_putnbrbase_fd.c b/print/ft_putnbrbase_fd.c similarity index 88% rename from ft_putnbrbase_fd.c rename to print/ft_putnbrbase_fd.c index bd9ccb2..6d8d275 100644 --- a/ft_putnbrbase_fd.c +++ b/print/ft_putnbrbase_fd.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_putnbrbase_fd.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/18 10:57:44 by adjoly #+# #+# */ -/* Updated: 2023/11/18 11:10:32 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:41:30 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void ft_putnbrbase_fd(int n, char *base, int fd) { diff --git a/ft_putstr.c b/print/ft_putstr.c similarity index 81% rename from ft_putstr.c rename to print/ft_putstr.c index 9a1d158..6b3ce37 100644 --- a/ft_putstr.c +++ b/print/ft_putstr.c @@ -3,16 +3,17 @@ /* ::: :::::::: */ /* ft_putstr.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/18 18:35:32 by adjoly #+# #+# */ -/* Updated: 2023/11/18 18:36:19 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 15:07:14 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void ft_putstr(char *s) { - ft_putstr_fd(s, 1); + write(1, s, ft_strlen(s)); } + diff --git a/ft_putstr_fd.c b/print/ft_putstr_fd.c similarity index 76% rename from ft_putstr_fd.c rename to print/ft_putstr_fd.c index 2b23b47..d10b5e4 100644 --- a/ft_putstr_fd.c +++ b/print/ft_putstr_fd.c @@ -3,25 +3,16 @@ /* ::: :::::::: */ /* ft_putstr_fd.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/10/31 11:45:55 by adjoly #+# #+# */ -/* Updated: 2023/11/05 15:06:13 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 15:08:44 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void ft_putstr_fd(char *s, int fd) { - int i; - - i = 0; - if (s == NULL) - return ; - while (s[i]) - { - write(fd, &s[i], 1); - i++; - } + write(fd, s, ft_strlen(s)); } diff --git a/print/printf/Makefile b/print/printf/Makefile new file mode 100644 index 0000000..65fa8b2 --- /dev/null +++ b/print/printf/Makefile @@ -0,0 +1,46 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: adjoly +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2023/11/17 12:35:27 by adjoly #+# #+# # +# Updated: 2023/11/20 15:55:52 by adjoly ### ########.fr # +# # +# **************************************************************************** # + +NAME = libftprintf.a + +CC = cc + +SRCS = ft_printf.c \ + ft_putchar.c \ + ft_putnbr.c \ + ft_putnbrbase.c \ + ft_putstr.c \ + ft_strlen.c \ + +OBJS = $(SRCS:.c=.o) + +FLAGS = -Werror -Wall -Wextra + +HEADER = libftprintf.h + +$(NAME): $(OBJS) + ar -rcs $(NAME) $(OBJS) + +%.o: %.c + $(CC) $(FLAGS) -I $(HEADER) $< -c -o $@ + +all: $(NAME) + +clean: + rm -f $(OBJS) + +fclean: clean + rm -f $(NAME) + +re: fclean all + +.PHONY: clean all re fclean \ No newline at end of file diff --git a/print/printf/ft_printf.c b/print/printf/ft_printf.c new file mode 100644 index 0000000..7144557 --- /dev/null +++ b/print/printf/ft_printf.c @@ -0,0 +1,92 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_printf.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/17 16:48:37 by adjoly #+# #+# */ +/* Updated: 2023/12/06 14:27:05 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "ft_printf.h" + +int ft_putaddr(void *ptr) +{ + int r; + + if (ptr == NULL) + return (write(1, "(nil)", 5)); + write(1, "0x", 2); + r = ft_putnbrbase_p((long unsigned int)ptr, "0123456789abcdef"); + return (2 + r); +} + +int ft_putnbrulong(unsigned int n) +{ + int len; + + len = 0; + if (n < 10) + len += write(1, &(char){n + '0'}, 1); + else + { + len += ft_putnbrulong(n / 10); + len += write(1, &(char){n % 10 + '0'}, 1); + } + return (len); +} + +int ft_printconversion(char conversion, va_list args) +{ + int count; + + count = 0; + if (conversion == '%') + count = ft_putchar('%'); + else if (conversion == 's') + count = ft_putstr(va_arg(args, char *)); + else if (conversion == 'c') + count = ft_putchar(va_arg(args, int)); + else if (conversion == 'i' || conversion == 'd') + count = ft_putnbr(va_arg(args, int)); + else if (conversion == 'u') + count = ft_putnbrulong(va_arg(args, unsigned int)); + else if (conversion == 'p') + count = ft_putaddr(va_arg(args, void *)); + else if (conversion == 'x') + count = ft_putnbrbase(va_arg(args, unsigned long), "0123456789abcdef"); + else if (conversion == 'X') + count = ft_putnbrbase(va_arg(args, unsigned long), "0123456789ABCDEF"); + return (count); +} + +int ft_printf(const char *format, ...) +{ + int i; + va_list args; + int count; + + va_start(args, format); + count = 0; + i = 0; + if (format == NULL) + return (-1); + while (format[i]) + { + if (format[i] == '%') + { + i++; + if (format[i]) + count += ft_printconversion(format[i], args); + else + return (-1); + } + else + count += ft_putchar(format[i]); + i++; + } + va_end(args); + return (count); +} diff --git a/print/printf/ft_printf.h b/print/printf/ft_printf.h new file mode 100644 index 0000000..fa3cdb7 --- /dev/null +++ b/print/printf/ft_printf.h @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_printf.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/17 16:50:36 by adjoly #+# #+# */ +/* Updated: 2023/11/22 14:00:38 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef FT_PRINTF_H +# define FT_PRINTF_H + +# include +# include +# include + +int ft_printf(const char *format, ...); +int ft_printconversion(char conversion, va_list args); +int ft_putnbrulong(unsigned int n); +int ft_putaddr(void *ptr); + +int ft_putstr(char *s); + +int ft_putnbrbase_p(unsigned long int n, char *base); +int ft_putnbrbase(unsigned int n, char *base); +int ft_putchar(char c); +int ft_putnbr(int n); +size_t ft_strlen(const char *s); + +#endif \ No newline at end of file diff --git a/ft_putchar.c b/print/printf/ft_putchar.c similarity index 85% rename from ft_putchar.c rename to print/printf/ft_putchar.c index 34eceea..7436489 100644 --- a/ft_putchar.c +++ b/print/printf/ft_putchar.c @@ -6,13 +6,14 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/18 10:49:00 by adjoly #+# #+# */ -/* Updated: 2023/11/18 10:50:35 by adjoly ### ########.fr */ +/* Updated: 2023/11/22 11:07:22 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "ft_printf.h" -void ft_putchar(char c) +int ft_putchar(char c) { - ft_putchar_fd(c, 1); + write(1, &c, 1); + return (1); } diff --git a/print/printf/ft_putnbr.c b/print/printf/ft_putnbr.c new file mode 100644 index 0000000..cf709ff --- /dev/null +++ b/print/printf/ft_putnbr.c @@ -0,0 +1,36 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putnbr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/10/31 11:52:46 by adjoly #+# #+# */ +/* Updated: 2023/11/22 10:51:24 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "ft_printf.h" + +int ft_putnbr(int n) +{ + unsigned int nbr; + int len; + + len = 0; + if (n < 0) + { + len += write(1, "-", 1); + nbr = -n; + } + else + nbr = n; + if (nbr < 10) + len += write(1, &(char){nbr + '0'}, 1); + else + { + len += ft_putnbr(nbr / 10); + len += write(1, &(char){nbr % 10 + '0'}, 1); + } + return (len); +} diff --git a/print/printf/ft_putnbrbase.c b/print/printf/ft_putnbrbase.c new file mode 100644 index 0000000..1866219 --- /dev/null +++ b/print/printf/ft_putnbrbase.c @@ -0,0 +1,47 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putnbrbase.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/18 10:57:44 by adjoly #+# #+# */ +/* Updated: 2023/11/22 14:02:37 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "ft_printf.h" + +int ft_putnbrbase(unsigned int n, char *base) +{ + unsigned int base_len; + int len; + + len = 0; + base_len = (int)ft_strlen(base); + if (n < base_len) + len += write(1, &base[n % base_len], 1); + else + { + len += ft_putnbrbase(n / base_len, base); + len += write(1, &base[n % base_len], 1); + } + return (len); +} + +int ft_putnbrbase_p(unsigned long int n, char *base) +{ + unsigned long int base_len; + int len; + + len = 0; + base_len = (int)ft_strlen(base); + if (n < base_len) + len += write(1, &base[n % base_len], 1); + else + { + len += ft_putnbrbase_p(n / base_len, base); + len += write(1, &base[n % base_len], 1); + } + return (len); +} diff --git a/print/printf/ft_putstr.c b/print/printf/ft_putstr.c new file mode 100644 index 0000000..97a8dd3 --- /dev/null +++ b/print/printf/ft_putstr.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putstr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/10/31 11:45:55 by adjoly #+# #+# */ +/* Updated: 2023/11/20 15:51:38 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "ft_printf.h" + +int ft_putstr(char *s) +{ + int i; + + i = 0; + if (s == NULL) + { + write(1, "(null)", 6); + return (6); + } + while (s[i]) + { + write(1, &s[i], 1); + i++; + } + return (i); +} diff --git a/ft_strlen.c b/print/printf/ft_strlen.c similarity index 91% rename from ft_strlen.c rename to print/printf/ft_strlen.c index 5ccf0b8..ce68f8d 100644 --- a/ft_strlen.c +++ b/print/printf/ft_strlen.c @@ -6,11 +6,11 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/10/30 18:15:57 by adjoly #+# #+# */ -/* Updated: 2023/11/01 17:15:12 by adjoly ### ########.fr */ +/* Updated: 2023/11/20 15:51:51 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "ft_printf.h" size_t ft_strlen(const char *s) { diff --git a/ft_atoi.c b/str/ft_atoi.c similarity index 100% rename from ft_atoi.c rename to str/ft_atoi.c diff --git a/ft_itoa.c b/str/ft_itoa.c similarity index 89% rename from ft_itoa.c rename to str/ft_itoa.c index 2f32646..79de97c 100644 --- a/ft_itoa.c +++ b/str/ft_itoa.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_itoa.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/05 16:26:26 by adjoly #+# #+# */ -/* Updated: 2023/11/06 15:36:28 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:45:39 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" static int ft_count_digit(int n) { diff --git a/ft_split.c b/str/ft_split.c similarity index 92% rename from ft_split.c rename to str/ft_split.c index 1ade67b..3927f1f 100644 --- a/ft_split.c +++ b/str/ft_split.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_split.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/12 09:14:19 by adjoly #+# #+# */ -/* Updated: 2023/11/12 16:28:35 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:43:50 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" static int ft_countword(char const *s, char sep) { diff --git a/ft_strchr.c b/str/ft_strchr.c similarity index 86% rename from ft_strchr.c rename to str/ft_strchr.c index 2016b39..0e25f63 100644 --- a/ft_strchr.c +++ b/str/ft_strchr.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_strchr.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/01 15:45:18 by adjoly #+# #+# */ -/* Updated: 2023/11/09 14:31:55 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:44:11 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" char *ft_strchr(const char *s, int c) { diff --git a/ft_strdup.c b/str/ft_strdup.c similarity index 87% rename from ft_strdup.c rename to str/ft_strdup.c index 9a9548c..312a778 100644 --- a/ft_strdup.c +++ b/str/ft_strdup.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_strdup.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/03 22:57:39 by adjoly #+# #+# */ -/* Updated: 2023/11/04 14:40:17 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:44:58 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" char *ft_strdup(const char *s) { diff --git a/ft_striteri.c b/str/ft_striteri.c similarity index 86% rename from ft_striteri.c rename to str/ft_striteri.c index c807bc2..6091ee0 100644 --- a/ft_striteri.c +++ b/str/ft_striteri.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_striteri.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/11 14:15:30 by adjoly #+# #+# */ -/* Updated: 2023/11/12 13:59:23 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:45:11 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" void ft_striteri(char *s, void (*f)(unsigned int, char *)) { diff --git a/ft_strjoin.c b/str/ft_strjoin.c similarity index 88% rename from ft_strjoin.c rename to str/ft_strjoin.c index 01229c0..574d390 100644 --- a/ft_strjoin.c +++ b/str/ft_strjoin.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_strjoin.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/04 13:44:09 by adjoly #+# #+# */ -/* Updated: 2023/11/12 16:18:45 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:45:30 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" char *ft_strjoin(char const *s1, char const *s2) { diff --git a/ft_strlcat.c b/str/ft_strlcat.c similarity index 88% rename from ft_strlcat.c rename to str/ft_strlcat.c index d211d89..db4a82b 100644 --- a/ft_strlcat.c +++ b/str/ft_strlcat.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_strlcat.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/03 15:59:31 by adjoly #+# #+# */ -/* Updated: 2023/11/05 10:39:34 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:47:03 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" size_t ft_strlcat(char *dst, const char *src, size_t size) { diff --git a/ft_strlcpy.c b/str/ft_strlcpy.c similarity index 87% rename from ft_strlcpy.c rename to str/ft_strlcpy.c index bef78a1..71a0f30 100644 --- a/ft_strlcpy.c +++ b/str/ft_strlcpy.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_strlcpy.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/01 09:52:45 by adjoly #+# #+# */ -/* Updated: 2023/11/03 22:46:49 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:47:41 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" size_t ft_strlcpy(char *dst, const char *src, size_t size) { diff --git a/str/ft_strlen.c b/str/ft_strlen.c new file mode 100644 index 0000000..879d7eb --- /dev/null +++ b/str/ft_strlen.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlen.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/10/30 18:15:57 by adjoly #+# #+# */ +/* Updated: 2024/02/04 15:10:15 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +size_t ft_strlen(const char *s) +{ + size_t i; + + i = 0; + while (*s) + { + s++; + i++; + } + return (i); +} diff --git a/ft_strmapi.c b/str/ft_strmapi.c similarity index 87% rename from ft_strmapi.c rename to str/ft_strmapi.c index d2e4be5..a91a45e 100644 --- a/ft_strmapi.c +++ b/str/ft_strmapi.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_strmapi.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/11 11:44:24 by adjoly #+# #+# */ -/* Updated: 2023/11/13 16:14:32 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:48:02 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" char *ft_strmapi(char const *s, char (*f)(unsigned int, char)) { diff --git a/ft_strncmp.c b/str/ft_strncmp.c similarity index 86% rename from ft_strncmp.c rename to str/ft_strncmp.c index 71eaf9b..cb0a45c 100644 --- a/ft_strncmp.c +++ b/str/ft_strncmp.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_strncmp.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/05 10:40:45 by adjoly #+# #+# */ -/* Updated: 2023/11/06 14:53:38 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:48:12 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" int ft_strncmp(const char *s1, const char *s2, size_t n) { diff --git a/ft_strnstr.c b/str/ft_strnstr.c similarity index 88% rename from ft_strnstr.c rename to str/ft_strnstr.c index 7028671..b1ec980 100644 --- a/ft_strnstr.c +++ b/str/ft_strnstr.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_strnstr.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/08 16:02:17 by adjoly #+# #+# */ -/* Updated: 2023/11/12 16:17:28 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:48:22 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" char *ft_strnstr(const char *big, const char *little, size_t len) { diff --git a/ft_strrchr.c b/str/ft_strrchr.c similarity index 87% rename from ft_strrchr.c rename to str/ft_strrchr.c index d77e573..a45c410 100644 --- a/ft_strrchr.c +++ b/str/ft_strrchr.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_strrchr.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/08 14:44:26 by adjoly #+# #+# */ -/* Updated: 2023/11/08 15:21:28 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:48:34 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" char *ft_strrchr(const char *s, int c) { diff --git a/ft_strtrim.c b/str/ft_strtrim.c similarity index 87% rename from ft_strtrim.c rename to str/ft_strtrim.c index f567d4b..c67c7e0 100644 --- a/ft_strtrim.c +++ b/str/ft_strtrim.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_strtrim.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/11 00:37:37 by adjoly #+# #+# */ -/* Updated: 2023/11/11 01:09:36 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:48:45 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" char *ft_strtrim(char const *s1, char const *set) { diff --git a/ft_substr.c b/str/ft_substr.c similarity index 89% rename from ft_substr.c rename to str/ft_substr.c index f473fe4..0c8aea5 100644 --- a/ft_substr.c +++ b/str/ft_substr.c @@ -3,14 +3,14 @@ /* ::: :::::::: */ /* ft_substr.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ +/* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/02 17:59:58 by adjoly #+# #+# */ -/* Updated: 2023/11/13 16:22:26 by adjoly ### ########.fr */ +/* Updated: 2024/02/04 14:48:54 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft.h" +#include "../libft.h" char *ft_substr(char const *s, unsigned int start, size_t len) { diff --git a/ft_tolower.c b/str/ft_tolower.c similarity index 100% rename from ft_tolower.c rename to str/ft_tolower.c diff --git a/ft_toupper.c b/str/ft_toupper.c similarity index 100% rename from ft_toupper.c rename to str/ft_toupper.c