From e2bc65f0498c9c774a308b11c3854d291e803a1d Mon Sep 17 00:00:00 2001 From: Adam Joly <adjoly@2E2.42angouleme.fr> Date: Sat, 4 Nov 2023 18:37:19 +0100 Subject: [PATCH] day finished --- Makefile | 10 ++++++++-- ft_memcpy.c | 4 ++-- ft_strchr.c | 6 +++--- ft_strdup.c | 2 +- ft_strjoin.c | 31 +++++++++++++++++++++++++++++++ ft_strlcat.c | 24 ++++++++++++++++++++++-- ft_substr.c | 4 ++-- libft.h | 4 +++- libft.so | Bin 0 -> 15488 bytes 9 files changed, 72 insertions(+), 13 deletions(-) create mode 100644 ft_strjoin.c create mode 100755 libft.so diff --git a/Makefile b/Makefile index dac1df4..1d22bdc 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ # By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2023/11/01 11:03:22 by adjoly #+# #+# # -# Updated: 2023/11/03 23:05:37 by adjoly ### ########.fr # +# Updated: 2023/11/04 15:37:27 by adjoly ### ########.fr # # # # **************************************************************************** # @@ -31,7 +31,9 @@ SRCS = ft_atoi.c \ ft_substr.c \ ft_tolower.c \ ft_toupper.c \ - + ft_strlcat.c \ + ft_strjoin.c \ + OBJS = $(SRCS:.c=.o) FLAGS = -Werror -Wall -Wextra @@ -41,6 +43,10 @@ HEADER = libft.h $(NAME): $(OBJS) ar -rcs $(NAME) $(OBJS) +so: + $(CC) -nostartfiles -fPIC $(CFLAGS) $(SRCS) + gcc -nostartfiles -shared -o libft.so $(OBJS) + %.o: %.c $(CC) $(FLAGS) -I $(HEADER) $< -c -o $@ diff --git a/ft_memcpy.c b/ft_memcpy.c index 0c0abb3..02015d9 100644 --- a/ft_memcpy.c +++ b/ft_memcpy.c @@ -6,7 +6,7 @@ /* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/02 10:21:55 by adjoly #+# #+# */ -/* Updated: 2023/11/02 11:30:30 by adjoly ### ########.fr */ +/* Updated: 2023/11/04 14:13:12 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,7 +17,7 @@ void *ft_memcpy(void *dest, const void *src, size_t n) size_t i; i = 0; - if (src == NULL || dest == NULL || n == 0) + if (src == NULL && dest == NULL) { return (dest); } diff --git a/ft_strchr.c b/ft_strchr.c index 237ed3f..6cf9679 100644 --- a/ft_strchr.c +++ b/ft_strchr.c @@ -6,7 +6,7 @@ /* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/01 15:45:18 by adjoly #+# #+# */ -/* Updated: 2023/11/02 10:08:05 by adjoly ### ########.fr */ +/* Updated: 2023/11/04 15:32:14 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,7 +15,7 @@ char *ft_strchr(const char *s, int c) int i; int j; char *str_result; - +// initialize str_result i = 0; j = 0; while (s[i] != c || s[i]) @@ -29,6 +29,6 @@ char *ft_strchr(const char *s, int c) } return (str_result); } - str_result[0] = '\0'; + str_result[i] = '\0'; return (str_result); } diff --git a/ft_strdup.c b/ft_strdup.c index cf202b6..9a9548c 100644 --- a/ft_strdup.c +++ b/ft_strdup.c @@ -6,7 +6,7 @@ /* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/03 22:57:39 by adjoly #+# #+# */ -/* Updated: 2023/11/04 11:10:30 by adjoly ### ########.fr */ +/* Updated: 2023/11/04 14:40:17 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_strjoin.c b/ft_strjoin.c new file mode 100644 index 0000000..87caffe --- /dev/null +++ b/ft_strjoin.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strjoin.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/11/04 13:44:09 by adjoly #+# #+# */ +/* Updated: 2023/11/04 14:06:43 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strjoin(char const *s1, char const *s2) +{ + int i; + char *result; + size_t len_s1; + size_t len_s2; + + i = 0; + len_s1 = ft_strlen(s1); + len_s2 = ft_strlen(s2); + result = malloc(len_s1 + len_s2 + 1); + if (result == NULL) + return (NULL); + ft_memcpy(result, s1, len_s1); + ft_memcpy(result + len_s1, s2, len_s2); + return (result); +} diff --git a/ft_strlcat.c b/ft_strlcat.c index 9ca9c40..9f2b467 100644 --- a/ft_strlcat.c +++ b/ft_strlcat.c @@ -6,7 +6,7 @@ /* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/03 15:59:31 by adjoly #+# #+# */ -/* Updated: 2023/11/03 17:12:22 by adjoly ### ########.fr */ +/* Updated: 2023/11/04 16:14:32 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,5 +14,25 @@ size_t ft_strlcat(char *dst, const char *src, size_t size) { - + size_t i; + size_t j; + size_t len_dst; + size_t len_src; + + if (dst == NULL && size == 0) + return (0); + i = 0; + j = ft_strlen(dst); + len_src = ft_strlen(src); + len_dst = ft_strlen(dst); + if (size <= j) + return (len_src + size); + while (j < size - 1 && src[i]) + { + dst[j] = src[i]; + i++; + j++; + } + dst[j] = '\0'; + return (len_src + len_dst); } diff --git a/ft_substr.c b/ft_substr.c index c945549..c6fe061 100644 --- a/ft_substr.c +++ b/ft_substr.c @@ -6,7 +6,7 @@ /* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/02 17:59:58 by adjoly #+# #+# */ -/* Updated: 2023/11/03 09:56:01 by adjoly ### ########.fr */ +/* Updated: 2023/11/04 15:18:28 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,7 +26,7 @@ char *ft_substr(char const *s, unsigned int start, size_t len) result[0] = '\0'; return (result); } - result = malloc(len * sizeof(char)); + result = malloc((len + 1) * sizeof(char)); if (result == NULL) return (NULL); while (i < len && s[start + i]) diff --git a/libft.h b/libft.h index 66100c7..5a27ed7 100644 --- a/libft.h +++ b/libft.h @@ -6,7 +6,7 @@ /* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/01 10:06:03 by adjoly #+# #+# */ -/* Updated: 2023/11/03 23:06:30 by adjoly ### ########.fr */ +/* Updated: 2023/11/04 14:07:28 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -37,5 +37,7 @@ size_t ft_strlen(const char *s); char *ft_substr(char const *s, unsigned int start, size_t len); int ft_tolower(int c); int ft_toupper(int c); +size_t ft_strlcat(char *dst, const char *src, size_t size); +char *ft_strjoin(char const *s1, char const *s2); #endif \ No newline at end of file diff --git a/libft.so b/libft.so new file mode 100755 index 0000000000000000000000000000000000000000..21784472f3d7627ff8fb934aad52d4df1f385149 GIT binary patch literal 15488 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 E06a;9#sB~S literal 0 HcmV?d00001