From b25c72caa449072419041292e5926e6c672f27e5 Mon Sep 17 00:00:00 2001 From: Tanguy MAZE Date: Fri, 6 Apr 2018 14:57:36 +0200 Subject: [PATCH] ft_memccpy --- Makefile | 3 ++- ft_memccpy.c | 27 +++++++++++++++++++++++++++ libft.h | 4 ++-- 3 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 ft_memccpy.c diff --git a/Makefile b/Makefile index a986d08..f820b6c 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ # By: tmaze +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2018/04/04 10:51:59 by tmaze #+# #+# # -# Updated: 2018/04/06 11:08:46 by tmaze ### ########.fr # +# Updated: 2018/04/06 11:30:50 by tmaze ### ########.fr # # # #******************************************************************************# @@ -20,6 +20,7 @@ SRCS = \ ft_memset.c \ ft_bzero.c \ ft_memcpy.c \ + ft_memccpy.c \ ft_strlen.c \ ft_strdup.c \ ft_strcpy.c \ diff --git a/ft_memccpy.c b/ft_memccpy.c new file mode 100644 index 0000000..fe6cafc --- /dev/null +++ b/ft_memccpy.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memccpy.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: tmaze +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2018/04/06 11:29:28 by tmaze #+# #+# */ +/* Updated: 2018/04/06 11:30:21 by tmaze ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +void *ft_memccpy(void *dest, const void *src, int c, size_t n) +{ + size_t i; + + i = 0; + while (++i <= n) + { + ((char*)dest)[i - 1] = ((char*)src)[i - 1]; + if (((unsigned char*)src)[i - 1] == (unsigned char)c) + return (dest + i); + } + return (NULL); +} diff --git a/libft.h b/libft.h index 1479dd3..447a3b0 100644 --- a/libft.h +++ b/libft.h @@ -6,7 +6,7 @@ /* By: tmaze +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2018/04/04 10:40:01 by tmaze #+# #+# */ -/* Updated: 2018/04/06 11:24:38 by tmaze ### ########.fr */ +/* Updated: 2018/04/06 11:46:45 by tmaze ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,7 +25,7 @@ void ft_bzero(void *s, size_t n); void *ft_memcpy(void *restrict dest, const void *restrict src, size_t n); void *ft_memccpy(void *restrict dest, const void *restrict src, int c,\ size_t n); -void *ft_memmove(void *dest, const void *src, size_t n); +void *ft_memmove(void *dest, 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); size_t ft_strlen(const char *s);