From 9901cd05849fa0ef396f09f57b07807ebd96ca32 Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 20 Nov 2019 04:04:55 +0100 Subject: refactored everything --- ft_bzero.c | 3 +-- ft_calloc.c | 3 +-- ft_itoa.c | 47 ++++++++-------------------------- ft_lstadd_back_bonus.c | 3 +-- ft_lstclear_bonus.c | 3 +-- ft_lstdelone_bonus.c | 3 +-- ft_lstiter_bonus.c | 3 +-- ft_lstlast_bonus.c | 3 +-- ft_lstmap_bonus.c | 3 +-- ft_lstnew_bonus.c | 3 +-- ft_lstsize_bonus.c | 3 +-- ft_memalloc.c | 13 +++------- ft_memccpy.c | 25 +++++++++---------- ft_memchr.c | 3 +-- ft_memcpy.c | 18 +++++-------- ft_memdel.c | 4 +-- ft_memmove.c | 4 +-- ft_memset.c | 12 ++------- ft_putchar.c | 4 +-- ft_putchar_fd.c | 5 ++-- ft_putendl.c | 6 ++--- ft_putendl_fd.c | 3 +-- ft_putnbr.c | 15 ++--------- ft_putnbr_fd.c | 6 ++--- ft_putstr.c | 7 ++---- ft_putstr_fd.c | 8 +++--- ft_split.c | 13 +++++----- ft_strchr.c | 6 ++--- ft_strdup.c | 17 +++---------- ft_strjoin.c | 9 +++---- ft_strlcat.c | 3 +-- ft_strlcpy.c | 3 +-- ft_strlen.c | 4 +-- ft_strmap.c | 3 +-- ft_strmapi.c | 3 +-- ft_strncat.c | 8 +++--- ft_strncmp.c | 4 +-- ft_strncpy.c | 7 +++--- ft_strnew.c | 14 +++-------- ft_strnstr.c | 6 ++--- ft_strrchr.c | 3 +-- ft_strstr.c | 28 +++++++-------------- ft_strtrim.c | 10 ++------ ft_substr.c | 20 ++++----------- libft.h | 68 +++++++++++++++++++++++++++++++++++--------------- 45 files changed, 163 insertions(+), 276 deletions(-) diff --git a/ft_bzero.c b/ft_bzero.c index 93af87a..d179af0 100644 --- a/ft_bzero.c +++ b/ft_bzero.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 09:50:10 by cacharle #+# #+# */ -/* Updated: 2019/10/18 12:26:42 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:29:26 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" void ft_bzero(void *s, size_t n) diff --git a/ft_calloc.c b/ft_calloc.c index 97a45f2..0a79c03 100644 --- a/ft_calloc.c +++ b/ft_calloc.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 12:45:37 by cacharle #+# #+# */ -/* Updated: 2019/10/20 10:55:01 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 04:00:52 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" void *ft_calloc(size_t count, size_t size) diff --git a/ft_itoa.c b/ft_itoa.c index 03d794b..166e278 100644 --- a/ft_itoa.c +++ b/ft_itoa.c @@ -6,59 +6,34 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:19:56 by cacharle #+# #+# */ -/* Updated: 2019/11/20 01:15:40 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:13:10 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" -static int count_len(int nbr) +char *ft_itoa(int n) { - int counter; + char *str; + int len; unsigned int u_nbr; - if (nbr == 0) - return (1); - counter = 0; - u_nbr = nbr; - if (nbr < 0) - { - counter++; - u_nbr = -nbr; - } + len = n < 0 || n == 0 ? 1 : 0; + u_nbr = n < 0 ? -n : n; while (u_nbr > 0) { u_nbr /= 10; - counter++; + len++; } - return (counter); -} - -char *ft_itoa(int n) -{ - char *str; - int len; - int is_negative; - unsigned int u_nbr; - - len = count_len(n); - if ((str = (char*)malloc(sizeof(char) * (len + 1))) == NULL) + if ((str = ft_strnew(len)) == NULL) return (NULL); - str[len] = '\0'; - is_negative = 0; - u_nbr = n; + u_nbr = n < 0 ? -n : n; if (n < 0) - { - is_negative = 1; str[0] = '-'; - u_nbr = -n; - } - len--; - while (len >= (is_negative ? 1 : 0)) + while (--len >= (n < 0 ? 1 : 0)) { str[len] = (u_nbr % 10) | 0x30; u_nbr /= 10; - len--; } return (str); } diff --git a/ft_lstadd_back_bonus.c b/ft_lstadd_back_bonus.c index be2dbf3..01eb00c 100644 --- a/ft_lstadd_back_bonus.c +++ b/ft_lstadd_back_bonus.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/09 09:02:03 by cacharle #+# #+# */ -/* Updated: 2019/10/20 10:55:13 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 04:01:26 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" void ft_lstadd_back(t_list **alst, t_list *new) diff --git a/ft_lstclear_bonus.c b/ft_lstclear_bonus.c index 23999a0..ee1d9e5 100644 --- a/ft_lstclear_bonus.c +++ b/ft_lstclear_bonus.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/09 09:02:39 by cacharle #+# #+# */ -/* Updated: 2019/11/20 01:57:09 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 04:02:37 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" void ft_lstclear(t_list **lst, void (*del)(void *)) diff --git a/ft_lstdelone_bonus.c b/ft_lstdelone_bonus.c index 59515ff..30cec69 100644 --- a/ft_lstdelone_bonus.c +++ b/ft_lstdelone_bonus.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/09 09:03:02 by cacharle #+# #+# */ -/* Updated: 2019/11/20 01:56:28 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 04:02:31 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" void ft_lstdelone(t_list *lst, void (*del)(void *)) diff --git a/ft_lstiter_bonus.c b/ft_lstiter_bonus.c index 7b543cb..282e0fa 100644 --- a/ft_lstiter_bonus.c +++ b/ft_lstiter_bonus.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/09 09:03:22 by cacharle #+# #+# */ -/* Updated: 2019/10/17 09:02:38 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 04:01:39 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" void ft_lstiter(t_list *lst, void (*f)(void *)) diff --git a/ft_lstlast_bonus.c b/ft_lstlast_bonus.c index 4246cfc..247f4da 100644 --- a/ft_lstlast_bonus.c +++ b/ft_lstlast_bonus.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/09 09:03:40 by cacharle #+# #+# */ -/* Updated: 2019/10/09 09:08:12 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 04:02:26 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" t_list *ft_lstlast(t_list *lst) diff --git a/ft_lstmap_bonus.c b/ft_lstmap_bonus.c index 3d0b20c..c623d6f 100644 --- a/ft_lstmap_bonus.c +++ b/ft_lstmap_bonus.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/09 09:03:57 by cacharle #+# #+# */ -/* Updated: 2019/11/20 01:56:47 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 04:01:31 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)) diff --git a/ft_lstnew_bonus.c b/ft_lstnew_bonus.c index 3f6ca38..ea10e4d 100644 --- a/ft_lstnew_bonus.c +++ b/ft_lstnew_bonus.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/09 09:01:16 by cacharle #+# #+# */ -/* Updated: 2019/10/10 14:51:30 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 04:01:35 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" t_list *ft_lstnew(void const *content) diff --git a/ft_lstsize_bonus.c b/ft_lstsize_bonus.c index 0613c93..b9d65d2 100644 --- a/ft_lstsize_bonus.c +++ b/ft_lstsize_bonus.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/09 09:04:28 by cacharle #+# #+# */ -/* Updated: 2019/10/09 09:20:36 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 04:01:44 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" int ft_lstsize(t_list *lst) diff --git a/ft_memalloc.c b/ft_memalloc.c index c485bfd..5aab2ec 100644 --- a/ft_memalloc.c +++ b/ft_memalloc.c @@ -6,20 +6,13 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:07:14 by cacharle #+# #+# */ -/* Updated: 2019/10/07 10:07:47 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:28:56 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include -#include +#include "libft.h" void *ft_memalloc(size_t size) { - void *ptr; - - if ((ptr = malloc(size)) == NULL) - return (NULL); - while (size-- > 0) - ((unsigned char*)ptr)[size] = 0; - return (ptr); + return (ft_calloc(size, 1)); } diff --git a/ft_memccpy.c b/ft_memccpy.c index f3dacbc..f95aa03 100644 --- a/ft_memccpy.c +++ b/ft_memccpy.c @@ -6,27 +6,26 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:01:53 by cacharle #+# #+# */ -/* Updated: 2019/10/20 12:41:51 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:30:45 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" void *ft_memccpy(void *dest, const void *src, int c, size_t n) { - size_t i; - unsigned char *uc_dest; - unsigned char *uc_src; + size_t i; + t_byte *cast_dest; + t_byte *cast_src; - uc_dest = (unsigned char*)dest; - uc_src = (unsigned char*)src; - i = 0; - while (i < n) + cast_dest = (t_byte*)dest; + cast_src = (t_byte*)src; + i = -1; + while (++i < n) { - uc_dest[i] = uc_src[i]; - if (uc_dest[i] == (unsigned char)c) - return (uc_dest + i + 1); - i++; + cast_dest[i] = cast_src[i]; + if (cast_dest[i] == (unsigned char)c) + return (cast_dest + i + 1); } return (NULL); } diff --git a/ft_memchr.c b/ft_memchr.c index 934ede8..d2364db 100644 --- a/ft_memchr.c +++ b/ft_memchr.c @@ -6,12 +6,11 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 09:55:31 by cacharle #+# #+# */ -/* Updated: 2019/10/20 12:56:46 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:30:55 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" -#include void *ft_memchr(const void *s, int c, size_t n) { diff --git a/ft_memcpy.c b/ft_memcpy.c index 642db20..70837bc 100644 --- a/ft_memcpy.c +++ b/ft_memcpy.c @@ -6,23 +6,17 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:00:07 by cacharle #+# #+# */ -/* Updated: 2019/10/21 11:17:05 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:20:29 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" void *ft_memcpy(void *dest, const void *src, size_t n) { - size_t i; - - if (dest == NULL) - return (NULL); - i = 0; - while (i < n) - { - *((char*)dest + i) = *((char*)src + i); - i++; - } + if (dest == src) + return (dest); + while (n-- > 0) + *((t_byte*)dest + n) = *((t_byte*)src + n); return (dest); } diff --git a/ft_memdel.c b/ft_memdel.c index e67f9f3..2b21f33 100644 --- a/ft_memdel.c +++ b/ft_memdel.c @@ -6,11 +6,11 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:00:56 by cacharle #+# #+# */ -/* Updated: 2019/11/20 01:57:44 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:22:41 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" void ft_memdel(void **ap) { diff --git a/ft_memmove.c b/ft_memmove.c index 0b7e430..aa107bd 100644 --- a/ft_memmove.c +++ b/ft_memmove.c @@ -6,12 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:03:21 by cacharle #+# #+# */ -/* Updated: 2019/10/21 11:07:04 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:31:00 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include -#include #include "libft.h" void *ft_memmove(void *dst, const void *src, size_t len) diff --git a/ft_memset.c b/ft_memset.c index c1fcda6..cd7616c 100644 --- a/ft_memset.c +++ b/ft_memset.c @@ -6,23 +6,15 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:01:23 by cacharle #+# #+# */ -/* Updated: 2019/10/21 11:35:07 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:22:29 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" void *ft_memset(void *s, int c, size_t n) { - t_byte cast_c; - t_byte *cast_s; - - if (s == NULL) - return (NULL); - cast_c = (t_byte)c; - cast_s = (t_byte*)s; while (n-- > 0) - *cast_s++ = cast_c; + *((t_byte*)s + n) = (t_byte)c; return (s); } diff --git a/ft_putchar.c b/ft_putchar.c index 0e01aea..2838f0a 100644 --- a/ft_putchar.c +++ b/ft_putchar.c @@ -6,11 +6,11 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 09:53:31 by cacharle #+# #+# */ -/* Updated: 2019/10/09 08:45:20 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:49:14 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" void ft_putchar(char c) { diff --git a/ft_putchar_fd.c b/ft_putchar_fd.c index a06b8b1..97d6f7a 100644 --- a/ft_putchar_fd.c +++ b/ft_putchar_fd.c @@ -6,12 +6,11 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:42:34 by cacharle #+# #+# */ -/* Updated: 2019/10/07 10:42:40 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:49:28 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include -#include +#include "libft.h" void ft_putchar_fd(char c, int fd) { diff --git a/ft_putendl.c b/ft_putendl.c index 719331b..880977e 100644 --- a/ft_putendl.c +++ b/ft_putendl.c @@ -6,15 +6,13 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:42:54 by cacharle #+# #+# */ -/* Updated: 2019/10/18 12:08:37 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 04:00:32 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" void ft_putendl(char *s) { - ft_putstr(s); - ft_putchar('\n'); + ft_putendl_fd(s, STDOUT_FILENO); } diff --git a/ft_putendl_fd.c b/ft_putendl_fd.c index 8b77884..a8077fc 100644 --- a/ft_putendl_fd.c +++ b/ft_putendl_fd.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:44:06 by cacharle #+# #+# */ -/* Updated: 2019/10/07 13:32:37 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 04:00:07 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" void ft_putendl_fd(char *s, int fd) diff --git a/ft_putnbr.c b/ft_putnbr.c index 9e1f894..247df40 100644 --- a/ft_putnbr.c +++ b/ft_putnbr.c @@ -6,24 +6,13 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 09:52:33 by cacharle #+# #+# */ -/* Updated: 2019/10/07 09:53:09 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:59:34 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" void ft_putnbr(int n) { - unsigned int p_n; - - p_n = n; - if (n < 0) - { - ft_putchar('-'); - p_n = -n; - } - if (p_n > 9) - ft_putnbr(p_n / 10); - ft_putchar(p_n % 10 + '0'); + ft_putnbr_fd(n, STDOUT_FILENO); } diff --git a/ft_putnbr_fd.c b/ft_putnbr_fd.c index 562d289..169d1b5 100644 --- a/ft_putnbr_fd.c +++ b/ft_putnbr_fd.c @@ -6,12 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:40:35 by cacharle #+# #+# */ -/* Updated: 2019/10/07 10:40:52 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:46:11 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include -#include #include "libft.h" void ft_putnbr_fd(int n, int fd) @@ -28,5 +26,5 @@ void ft_putnbr_fd(int n, int fd) } if (p_n > 9) ft_putnbr_fd(p_n / 10, fd); - ft_putchar_fd(p_n % 10 + '0', fd); + ft_putchar_fd(p_n % 10 | 0x30, fd); } diff --git a/ft_putstr.c b/ft_putstr.c index 1175e68..14b01a3 100644 --- a/ft_putstr.c +++ b/ft_putstr.c @@ -6,16 +6,13 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 09:52:12 by cacharle #+# #+# */ -/* Updated: 2019/11/20 02:03:11 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:48:48 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" void ft_putstr(char const *s) { - if (s == NULL) - return ; - write(STDOUT_FILENO, s, ft_strlen(s)); + ft_putstr_fd((char*)s, STDOUT_FILENO); } diff --git a/ft_putstr_fd.c b/ft_putstr_fd.c index 1f2bbda..d0279ab 100644 --- a/ft_putstr_fd.c +++ b/ft_putstr_fd.c @@ -6,17 +6,15 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:40:15 by cacharle #+# #+# */ -/* Updated: 2019/10/07 13:26:14 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:47:59 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include -#include +#include "libft.h" void ft_putstr_fd(char *s, int fd) { if (s == NULL || fd < 0 || fd > OPEN_MAX) return ; - while (*s) - write(fd, s++, 1); + write(fd, s, ft_strlen(s)); } diff --git a/ft_split.c b/ft_split.c index d4ceabf..999c664 100644 --- a/ft_split.c +++ b/ft_split.c @@ -6,11 +6,11 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/17 08:29:02 by cacharle #+# #+# */ -/* Updated: 2019/10/17 08:39:40 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:54:26 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" static size_t count_segment(char const *s, char c) { @@ -52,11 +52,10 @@ static char *ft_strndup(const char *s1, size_t n) static void *destroy_strs(char **strs) { - int i; - - i = 0; - while (strs[i] != NULL) - free(strs[i++]); + if (strs == NULL) + return (NULL); + while (*strs != NULL) + free(*strs++); free(strs); return (NULL); } diff --git a/ft_strchr.c b/ft_strchr.c index 45eecdd..0ae161b 100644 --- a/ft_strchr.c +++ b/ft_strchr.c @@ -6,11 +6,11 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:14:47 by cacharle #+# #+# */ -/* Updated: 2019/10/20 13:10:19 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 04:02:02 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" char *ft_strchr(const char *s, int c) { @@ -20,7 +20,7 @@ char *ft_strchr(const char *s, int c) return ((char*)s); s++; } - if ((char)c == 0) + if ((char)c == '\0') return ((char*)s); return (NULL); } diff --git a/ft_strdup.c b/ft_strdup.c index f0f8a06..65a6ac6 100644 --- a/ft_strdup.c +++ b/ft_strdup.c @@ -6,28 +6,17 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:18:07 by cacharle #+# #+# */ -/* Updated: 2019/10/18 14:28:41 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:13:47 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" char *ft_strdup(const char *s) { char *clone; - size_t i; - size_t len; - len = ft_strlen(s); - if ((clone = (char*)malloc(sizeof(char) * (len + 1))) == NULL) + if ((clone = ft_strnew(ft_strlen(s))) == NULL) return (NULL); - i = 0; - while (i < len) - { - clone[i] = s[i]; - i++; - } - clone[i] = '\0'; - return (clone); + return (ft_strcpy(clone, s)); } diff --git a/ft_strjoin.c b/ft_strjoin.c index 0078d65..2bc4908 100644 --- a/ft_strjoin.c +++ b/ft_strjoin.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:35:26 by cacharle #+# #+# */ -/* Updated: 2019/10/07 10:38:07 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 04:02:20 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" char *ft_strjoin(char const *s1, char const *s2) @@ -19,9 +18,7 @@ char *ft_strjoin(char const *s1, char const *s2) if (s1 == NULL || s2 == NULL) return (NULL); - if ((joined = (char*)malloc(sizeof(char) - * (ft_strlen(s1) + ft_strlen(s2) + 1))) == NULL) + if ((joined = ft_strnew(ft_strlen(s1) + ft_strlen(s2))) == NULL) return (NULL); - joined = ft_strcpy(joined, s1); - return (ft_strcat(joined, s2)); + return (ft_strcat(ft_strcpy(joined, s1), s2)); } diff --git a/ft_strlcat.c b/ft_strlcat.c index 109d390..ce7fa0b 100644 --- a/ft_strlcat.c +++ b/ft_strlcat.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:31:37 by cacharle #+# #+# */ -/* Updated: 2019/10/20 13:16:45 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:31:08 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#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 0b1b0d4..6afb8f5 100644 --- a/ft_strlcpy.c +++ b/ft_strlcpy.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 12:28:47 by cacharle #+# #+# */ -/* Updated: 2019/10/21 11:05:52 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:31:16 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" size_t ft_strlcpy(char *dst, const char *src, size_t size) diff --git a/ft_strlen.c b/ft_strlen.c index 8a5431b..dc612a8 100644 --- a/ft_strlen.c +++ b/ft_strlen.c @@ -6,11 +6,11 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:32:48 by cacharle #+# #+# */ -/* Updated: 2019/10/18 13:07:56 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:31:28 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" size_t ft_strlen(const char *s) { diff --git a/ft_strmap.c b/ft_strmap.c index 74e3820..61d16f1 100644 --- a/ft_strmap.c +++ b/ft_strmap.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:29:52 by cacharle #+# #+# */ -/* Updated: 2019/11/20 02:02:23 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 04:02:11 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" char *ft_strmap(char const *s, char (*f)(char)) diff --git a/ft_strmapi.c b/ft_strmapi.c index 7784980..71d77e4 100644 --- a/ft_strmapi.c +++ b/ft_strmapi.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:29:32 by cacharle #+# #+# */ -/* Updated: 2019/10/07 13:22:15 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 04:02:15 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" char *ft_strmapi(char *s, char (*f)(unsigned int, char)) diff --git a/ft_strncat.c b/ft_strncat.c index 3bbb41f..d68db0a 100644 --- a/ft_strncat.c +++ b/ft_strncat.c @@ -6,20 +6,18 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:28:37 by cacharle #+# #+# */ -/* Updated: 2019/10/07 10:30:53 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:33:22 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" char *ft_strncat(char *dest, const char *src, size_t n) { size_t i; size_t j; - i = 0; - while (dest[i]) - i++; + i = ft_strlen(dest); j = 0; while (j < n && src[j]) { diff --git a/ft_strncmp.c b/ft_strncmp.c index e8188d0..46f79c2 100644 --- a/ft_strncmp.c +++ b/ft_strncmp.c @@ -6,11 +6,11 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:27:34 by cacharle #+# #+# */ -/* Updated: 2019/10/21 11:04:38 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:33:59 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" int ft_strncmp(const char *s1, const char *s2, size_t n) { diff --git a/ft_strncpy.c b/ft_strncpy.c index 4a4efed..5f4c69f 100644 --- a/ft_strncpy.c +++ b/ft_strncpy.c @@ -6,11 +6,11 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:26:59 by cacharle #+# #+# */ -/* Updated: 2019/10/07 10:28:17 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:36:05 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include +#include "libft.h" char *ft_strncpy(char *dest, const char *src, size_t n) { @@ -22,7 +22,6 @@ char *ft_strncpy(char *dest, const char *src, size_t n) dest[i] = src[i]; i++; } - while (i < n) - dest[i++] = '\0'; + ft_bzero(dest + i, n - i); return (dest); } diff --git a/ft_strnew.c b/ft_strnew.c index 4274d5d..1bca6d5 100644 --- a/ft_strnew.c +++ b/ft_strnew.c @@ -6,21 +6,13 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:17:34 by cacharle #+# #+# */ -/* Updated: 2019/10/07 10:17:59 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:16:14 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include -#include +#include "libft.h" char *ft_strnew(size_t size) { - char *str; - - if ((str = (char*)malloc(sizeof(char) * (size + 1))) == NULL) - return (NULL); - str[size] = '\0'; - while (size-- > 0) - str[size] = '\0'; - return (str); + return ((char*)ft_calloc(size + 1, sizeof(char))); } diff --git a/ft_strnstr.c b/ft_strnstr.c index 4ca9f4b..4995637 100644 --- a/ft_strnstr.c +++ b/ft_strnstr.c @@ -6,12 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:25:13 by cacharle #+# #+# */ -/* Updated: 2019/10/21 11:04:56 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:58:42 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include -#include #include "libft.h" char *ft_strnstr(const char *haystack, const char *needle, size_t len) @@ -23,7 +21,7 @@ char *ft_strnstr(const char *haystack, const char *needle, size_t len) return ((char*)haystack); while (*haystack && len-- >= needle_len) { - if (ft_strncmp(haystack, needle, needle_len) == 0) + if (ft_strnequ(haystack, needle, needle_len)) return ((char*)haystack); haystack++; } diff --git a/ft_strrchr.c b/ft_strrchr.c index 5653c2b..56c8be5 100644 --- a/ft_strrchr.c +++ b/ft_strrchr.c @@ -6,11 +6,10 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:26:24 by cacharle #+# #+# */ -/* Updated: 2019/10/20 13:11:13 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:36:47 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" char *ft_strrchr(const char *s, int c) diff --git a/ft_strstr.c b/ft_strstr.c index f71423f..4d4d403 100644 --- a/ft_strstr.c +++ b/ft_strstr.c @@ -6,34 +6,24 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:15:29 by cacharle #+# #+# */ -/* Updated: 2019/10/07 10:21:49 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:58:32 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include -#include #include "libft.h" char *ft_strstr(const char *haystack, const char *needle) { - size_t i; - char *cursor; + size_t needle_len; - cursor = (char*)haystack; - if (!ft_strlen(needle)) - return (cursor); - while (*cursor) + needle_len = ft_strlen(needle); + if (needle_len == 0) + return ((char*)haystack); + while (*haystack) { - i = 0; - while (needle[i] && cursor[i]) - { - if (needle[i] != cursor[i]) - break ; - i++; - } - if (i == ft_strlen(needle)) - return (cursor); - cursor++; + if (ft_strnequ(haystack, needle, needle_len)) + return ((char*)haystack); + haystack++; } return (NULL); } diff --git a/ft_strtrim.c b/ft_strtrim.c index 8cde14e..aa48826 100644 --- a/ft_strtrim.c +++ b/ft_strtrim.c @@ -6,18 +6,16 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:24:16 by cacharle #+# #+# */ -/* Updated: 2019/10/14 13:22:33 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:52:58 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" char *ft_strtrim(char const *s1, char const *set) { size_t start; size_t len; - char *trimed; if (s1 == NULL || set == NULL) return (NULL); @@ -29,9 +27,5 @@ char *ft_strtrim(char const *s1, char const *set) while (s1[start + len - 1] && ft_strchr(set, s1[start + len - 1]) != NULL) len--; - if ((trimed = (char*)malloc(sizeof(char) * (len + 1))) == NULL) - return (NULL); - trimed = ft_strncpy(trimed, &s1[start], len); - trimed[len] = '\0'; - return (trimed); + return (ft_substr(s1, start, len)); } diff --git a/ft_substr.c b/ft_substr.c index 88f7203..84d6c58 100644 --- a/ft_substr.c +++ b/ft_substr.c @@ -6,31 +6,21 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/17 08:28:49 by cacharle #+# #+# */ -/* Updated: 2019/10/18 11:55:44 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:57:58 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#include #include "libft.h" char *ft_substr(char const *s, unsigned int start, size_t len) { - unsigned int i; char *sub; if (s == NULL) return (NULL); - if ((sub = (char*)malloc(sizeof(char) * (len + 1))) == NULL) + if ((sub = ft_strnew(len)) == NULL) return (NULL); - i = 0; - if (!(start > ft_strlen(s))) - { - while (i < len && s[start + i]) - { - sub[i] = s[start + i]; - i++; - } - } - sub[i] = '\0'; - return (sub); + if (start > ft_strlen(s)) + return (sub); + return (ft_strncpy(sub, s + start, len)); } diff --git a/libft.h b/libft.h index f337e14..1bf7fe7 100644 --- a/libft.h +++ b/libft.h @@ -6,26 +6,26 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 09:45:02 by cacharle #+# #+# */ -/* Updated: 2019/11/20 02:01:10 by cacharle ### ########.fr */ +/* Updated: 2019/11/20 03:46:20 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef LIBFT_H # define LIBFT_H +# include # include -# include +# include +# include # define TRUE 1 # define FALSE 0 typedef unsigned char t_byte; -typedef struct s_list -{ - void *content; - struct s_list *next; -} t_list; +/* +** memory +*/ void *ft_memset(void *s, int c, size_t n); void ft_bzero(void *s, size_t n); @@ -34,6 +34,14 @@ void *ft_memccpy(void *dest, const void *src, int c, size_t n); void *ft_memmove(void *dst, const void *src, size_t len); void *ft_memchr(const void *s, int c, size_t n); int ft_memcmp(const void *s1, const void *s2, size_t n); + +void *ft_memalloc(size_t size); +void ft_memdel(void **ap); + +/* +** string +*/ + size_t ft_strlen(const char *s); char *ft_strdup(const char *s); char *ft_strcpy(char *dest, const char *src); @@ -49,22 +57,13 @@ char *ft_strnstr(const char *haystack, const char *needle, size_t len); int ft_strcmp(const char *s1, const char *s2); int ft_strncmp(const char *s1, const char *s2, size_t n); +void ft_striter(char *s, void (*f)(char *)); +void ft_striteri(char *s, void (*f)(unsigned int, char *)); int ft_atoi(const char *nptr); -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); -void *ft_calloc(size_t count, size_t size); -void *ft_memalloc(size_t size); -void ft_memdel(void **ap); + char *ft_strnew(size_t size); void ft_strdel(char **as); void ft_strclr(char *s); -void ft_striter(char *s, void (*f)(char *)); -void ft_striteri(char *s, void (*f)(unsigned int, char *)); char *ft_strmap(char const *s, char (*f)(char)); char *ft_strmapi(char *s, char (*f)(unsigned int, char)); int ft_strequ(char const *s1, char const *s2); @@ -73,7 +72,30 @@ 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); + +/* +** character +*/ + +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); + +/* +** allocation +*/ + +void *ft_calloc(size_t count, size_t size); char *ft_itoa(int n); + +/* +** fildes +*/ + void ft_putendl(char *s); void ft_putchar(char c); void ft_putstr(char const *s); @@ -84,9 +106,15 @@ void ft_putendl_fd(char *s, int fd); void ft_putnbr_fd(int n, int fd); /* -** bonus +** list */ +typedef struct s_list +{ + void *content; + struct s_list *next; +} t_list; + t_list *ft_lstnew(void const *content); void ft_lstadd_front(t_list **alst, t_list *new); int ft_lstsize(t_list *lst); -- cgit