From 861a36d86e7587c043131228cf3a08afd7bc43ad Mon Sep 17 00:00:00 2001 From: yctct Date: Thu, 5 Feb 2026 11:56:49 +0100 Subject: Add files, first commit --- ft_strncmp.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 ft_strncmp.c (limited to 'ft_strncmp.c') diff --git a/ft_strncmp.c b/ft_strncmp.c new file mode 100644 index 0000000..d4858dc --- /dev/null +++ b/ft_strncmp.c @@ -0,0 +1,73 @@ +/* +Libft Copyright (C) 2026 yctct + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "libft.h" + +int ft_strncmp(const char *s1, const char *s2, size_t n) +{ + size_t i; + + i = 0; + while (i < n) + { + if ((s1[i] != s2[i]) || s1[i] == '\0') + return ((unsigned char)s1[i] - (unsigned char)s2[i]); + i++; + } + return (0); +} +/* +#include +#include + +int main(void) +{ + char str1[] = "ABC"; + char str2[] = "ABC"; + char str3[] = "AB"; + char str4[] = "ABA"; + char str5[] = "ABZ"; + char str6[] = "ABJ"; + int size; + + printf("############ strncmp ############\n"); + size = 3; + printf("%d\n", ft_strncmp(str1, str2, size)); + printf("%d\n", strncmp(str1, str2, size)); + size = 0; + printf("%d\n", ft_strncmp(str1, str1, size)); + printf("%d\n", strncmp(str1, str1, size)); + size = -1; + printf("%d\n", ft_strncmp(str1, str1, size)); + printf("%d\n", strncmp(str1, str1, size)); + size = 3; + printf("%d\n", ft_strncmp(str1, str3, size)); + printf("%d\n", strncmp(str1, str3, size)); + size = 3; + printf("%d\n", ft_strncmp(str4, str5, size)); + printf("%d\n", strncmp(str4, str5, size)); + size = 3; + printf("%d\n", ft_strncmp(str6, str1, size)); + printf("%d\n", strncmp(str6, str1, size)); + size = 6; + printf("%d\n", ft_strncmp("test\200", "test\0", size)); + printf("%d\n", strncmp("test\200", "test\0", size)); + size = 4; + printf("%d\n", ft_strncmp("\201", "A", size)); + printf("%d\n", strncmp("\201", "A", size)); +} +*/ -- cgit v1.2.3