diff --git a/lib/libft/Makefile b/lib/libft/Makefile index 42e15a2..24b292b 100644 --- a/lib/libft/Makefile +++ b/lib/libft/Makefile @@ -1,13 +1,26 @@ NAME = libft.a -SRC = ft_strlen.c ft_strlcpy.c ft_strlcat.c ft_strchr.c ft_strrchr.c ft_strnstr.c ft_memset.c ft_memcpy.c ft_memmove.c ft_memchr.c ft_memcmp.c ft_isalpha.c ft_isdigit.c ft_isalnum.c ft_isascii.c ft_isprint.c ft_tolower.c ft_toupper.c ft_strncmp.c ft_atoi.c ft_bzero.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_striteri.c ft_putchar_fd.c ft_putstr_fd.c ft_putendl_fd.c ft_putnbr_fd.c +SRC = ft_strlen.c ft_strlcpy.c ft_strlcat.c ft_strchr.c \ + ft_strrchr.c ft_strnstr.c ft_memset.c ft_memcpy.c \ + ft_memmove.c ft_memchr.c ft_memcmp.c ft_isalpha.c \ + ft_isdigit.c ft_isalnum.c ft_isascii.c ft_isprint.c \ + ft_tolower.c ft_toupper.c ft_strncmp.c ft_atoi.c \ + ft_bzero.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_striteri.c ft_putchar_fd.c \ + ft_putstr_fd.c ft_putendl_fd.c ft_putnbr_fd.c \ + ft_lstnew_bonus.c ft_lstadd_front_bonus.c \ + ft_lstsize_bonus.c ft_lstlast_bonus.c \ + ft_lstadd_back_bonus.c ft_lstdelone_bonus.c \ + ft_lstclear_bonus.c ft_lstiter_bonus.c ft_lstmap_bonus.c \ + ft_array.c ft_atof.c ft_itoa_base.c ft_memfree_all.c \ + ft_memfree.c ft_issign.c ft_isspace.c ft_iabs.c \ + ft_strcmp.c + -SRC_B = ft_lstnew_bonus.c ft_lstadd_front_bonus.c ft_lstsize_bonus.c ft_lstlast_bonus.c ft_lstadd_back_bonus.c ft_lstdelone_bonus.c ft_lstclear_bonus.c ft_lstiter_bonus.c ft_lstmap_bonus.c OBJ = $(SRC:.c=.o) -OBJS_B = ${SRC_B:.c=.o} - CC = cc CFLAGS = -Wall -Wextra -Werror @@ -18,9 +31,6 @@ $(NAME): $(OBJ) ar rc $(NAME) $(OBJ) ranlib $(NAME) -bonus: $(OBJ) $(OBJS_B) - ar rc $(NAME) $(OBJ) $(OBJS_B) - ranlib $(NAME) %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ @@ -31,6 +41,6 @@ clean: fclean: clean rm -f $(NAME) -re: fclean bonus +re: fclean -.PHONY: bonus all clean fclean re +.PHONY: all clean fclean re diff --git a/lib/libft/ft_array.c b/lib/libft/ft_array.c new file mode 100644 index 0000000..cf80dab --- /dev/null +++ b/lib/libft/ft_array.c @@ -0,0 +1,81 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_atoi.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: aortigos +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/09/22 20:46:43 by aortigos #+# #+# */ +/* Updated: 2023/10/18 20:41:03 by aortigos ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char **ft_arrayadd(char *str, char **array) +{ + char **new_array; + int i; + + if (!array) + { + array = ft_calloc(sizeof(char *), 2); + array[0] = str; + return (array); + } else { + new_array = ft_calloc(sizeof(char *), ft_arraylen(array) + 2); + i = 0; + while (array[i++]) + new_array[i] = ft_strdup(array[i]); + new_array[i] = ft_strdup(str); + free2d(array); + free(str); + return (new_array); + } +} + +char **ft_arraydelete(int pos, char **array) +{ + int len; + int i; + + len = ft_arraylen(array); + if (!array || pos < 0 || pos > len) + return (array); + i = pos; + while (array[i]) + { + array[i] = array[i + 1]; + i++; + } + return (array); +} + +char **ft_arraydup(char **array) +{ + char **new_array; + int i; + + if (!array) + return (NULL); + new_array = ft_calloc(sizeof(char *), ft_arraylen(array) + 1); + i = 0; + while (array[i]) + { + new_array[i] = ft_strdup(array[i]); + i++; + } + return (new_array); +} + +int ft_arraylen(char **array) +{ + int i; + + i = 0; + if (!array) + return (0); + while (array[i]) + i++; + return (i); +} diff --git a/lib/libft/ft_atof.c b/lib/libft/ft_atof.c new file mode 100644 index 0000000..d372b56 --- /dev/null +++ b/lib/libft/ft_atof.c @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_atoi.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: aortigos +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/09/22 20:46:43 by aortigos #+# #+# */ +/* Updated: 2023/10/18 20:41:03 by aortigos ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +double ft_atof(char *str) +{ + int num; + double rest; + char *tmp; + int i; + + num = ft_atoi(str); + tmp = ft_strchr(str, '.'); + if (!tmp) + tmp = ft_strchr(str, ','); + if (!tmp) + return (num); + rest = ft_atoi(&tmp[1]); + i = 1; + while (tmp[i]) + { + rest /= 10; + i++; + } + if (num < 0 || (str[0] == '-' && str[1] == '0')) + return (num - rest); + return (num + rest); +} \ No newline at end of file diff --git a/lib/libft/ft_iabs.c b/lib/libft/ft_iabs.c new file mode 100644 index 0000000..50ca0af --- /dev/null +++ b/lib/libft/ft_iabs.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_iabs.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: aortigos = 9 && c <= 13)); +} \ No newline at end of file diff --git a/lib/libft/ft_itoa_base.c b/lib/libft/ft_itoa_base.c new file mode 100644 index 0000000..fd12112 --- /dev/null +++ b/lib/libft/ft_itoa_base.c @@ -0,0 +1,82 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_itoa_base.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: aortigos 0) + { + digit = ul % base; + test(base, str, i, digit); + ul /= base; + i++; + } + if (i == 0) + str[i++] = '0'; + str[i] = 0; + str_invert(str, i); + return (str); +} diff --git a/lib/libft/ft_ltoa.c b/lib/libft/ft_ltoa.c new file mode 100644 index 0000000..622b67a --- /dev/null +++ b/lib/libft/ft_ltoa.c @@ -0,0 +1,88 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_ltoa.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: aortigos +#+ +:+ +#+ */ +/* By: aortigos +#+ +:+ +#+ */ +/* By: aortigos