From f7ce583baeafd7059c53a423b4162cba364cf5ec Mon Sep 17 00:00:00 2001 From: lalgarra Date: Mon, 6 Oct 2025 18:53:47 +0200 Subject: [PATCH] ft_strncmp() --- Makefile | 4 +- ft_strncmp_expected.output | 4 ++ ft_strncmp_test.c | 95 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 101 insertions(+), 2 deletions(-) create mode 100644 ft_strncmp_expected.output create mode 100644 ft_strncmp_test.c diff --git a/Makefile b/Makefile index 828840e..5d30317 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ # By: lalgarra +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2025/10/03 18:03:12 by lalgarra #+# #+# # -# Updated: 2025/10/06 18:17:51 by lalgarra ### ########.fr # +# Updated: 2025/10/06 18:50:13 by lalgarra ### ########.fr # # # # **************************************************************************** # @@ -21,7 +21,7 @@ TESTS := ft_isalpha_test ft_isdigit_test ft_isalnum_test ft_isascii_test \ ft_isprint_test ft_toupper_test ft_tolower_test ft_strlen_test \ ft_memset_test ft_bzero_test ft_memcpy_test ft_calloc_test \ ft_memmove_test ft_strlcpy_test ft_strlcat_test ft_strchr_test \ - ft_strrchr_test + ft_strrchr_test ft_strncmp_test %_test : %_test.c $(CC) $(CFLAGS) $*_test.c -L$(LIBDIR) -lft -o $*_test diff --git a/ft_strncmp_expected.output b/ft_strncmp_expected.output new file mode 100644 index 0000000..690b690 --- /dev/null +++ b/ft_strncmp_expected.output @@ -0,0 +1,4 @@ +test 1: size:[10], str1:[ ips], str2:[Lorem], result:[44] +test 2: size:[10], str1:[ ipsu], str2:[Lrem], result:[44] +test 3: size:[5], str1:[], str2:[], result:[0] +test 4: size:[0], str1:[], str2:[Lorem ip], result:[0] diff --git a/ft_strncmp_test.c b/ft_strncmp_test.c new file mode 100644 index 0000000..8d782d1 --- /dev/null +++ b/ft_strncmp_test.c @@ -0,0 +1,95 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strncmp_test.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: lalgarra +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/10/05 13:21:43 by lalgarra #+# #+# */ +/* Updated: 2025/10/06 18:52:36 by lalgarra ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" +#include +#include + +static void test(char *prefix, char str1[], char str2[], size_t size) +{ + int res; + int fd; + + fd = STDOUT_FILENO; + ft_putstr_fd(prefix, fd); + ft_putstr_fd("size:[", fd); + ft_putnbr_fd((int) size, fd); + ft_putstr_fd("], str1:[", fd); + ft_putstr_fd(str1, fd); + ft_putstr_fd("], str2:[", fd); + ft_putstr_fd(str2, fd); + res = ft_strncmp(str2, str1, size); + ft_putstr_fd("], result:[", fd); + ft_putnbr_fd(res, fd); + ft_putendl_fd("]", fd); +} + +static void zero(char src[], char dest[]) +{ + bzero(src, 128); + bzero(dest, 128); +} + +static void do_test1(char *prefix, char src[], char dest[]) +{ + size_t size; + + size = 10; + zero(src, dest); + memcpy(dest, "Lorem ipsum dolor sit amet consectetur adipiscing elit.", 5); + memcpy(src, " ipsum dolor sit amet consectetur adipiscing elit.", 4); + test(prefix, src, dest, size); +} + +static void do_test2(char *prefix, char src[], char dest[]) +{ + size_t size; + + zero(src, dest); + size = 10; + memcpy(dest, "L\x06rem ipsum dolor sit amet consectetur adipiscing elit.", + 5); + memcpy(src, " ipsum dolor sit amet consectetur adipiscing elit.", 5); + test(prefix, src, dest, size); +} + +static void do_test3(char *prefix, char src[], char dest[]) +{ + size_t size; + + zero(src, dest); + size = 5; + test(prefix, src, dest, size); +} + +static void do_test4(char *prefix, char src[], char dest[]) +{ + size_t size; + + zero(src, dest); + size = 0; + memcpy(dest, "Lorem ipsum dolor sit amet consectetur adipiscing elit.", + 8); + test(prefix, src, dest, size); +} + +int main(void) +{ + char src[128]; + char dest[128]; + + do_test1("test 1: ", src, dest); + do_test2("test 2: ", src, dest); + do_test3("test 3: ", src, dest); + do_test4("test 4: ", src, dest); + return (0); +}