From a7ffedf4203212285de39f4ba0c6be3c885a1550 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kha=C3=AFs=20COLIN?= Date: Tue, 15 Oct 2024 14:54:04 +0200 Subject: [PATCH] ft_strlcpy: initial implementation --- Makefile | 5 +++-- ft_strlcpy.c | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 ft_strlcpy.c diff --git a/Makefile b/Makefile index 6199be1..60ece69 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ # By: kcolin +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2024/10/14 13:43:59 by kcolin #+# #+# # -# Updated: 2024/10/15 13:56:10 by kcolin ### ########.fr # +# Updated: 2024/10/15 14:53:02 by kcolin ### ########.fr # # # # **************************************************************************** # @@ -21,7 +21,8 @@ SOURCES = ft_isalpha.c \ ft_memset.c \ ft_bzero.c \ ft_memcpy.c \ - ft_memmove.c + ft_memmove.c \ + ft_strlcpy.c OBJECTS = $(SOURCES:.c=.o) CC = gcc diff --git a/ft_strlcpy.c b/ft_strlcpy.c new file mode 100644 index 0000000..8a5c108 --- /dev/null +++ b/ft_strlcpy.c @@ -0,0 +1,36 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlcpy.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: kcolin +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/10/15 14:47:09 by kcolin #+# #+# */ +/* Updated: 2024/10/15 14:53:42 by kcolin ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +static int min(t_size a, t_size b) +{ + if (a > b) + return (b); + return (a); +} + +t_size strlcpy(char *dst, const char *src, t_size size) +{ + t_size i; + + i = 0; + while (src[i] != 0) + { + if (i < size) + dst[i] = src[i]; + i++; + } + if (size > 0) + dst[min(i, size - 1)] = '\0'; + return (i); +}