summaryrefslogtreecommitdiff
path: root/ft_strnstr.c
diff options
context:
space:
mode:
Diffstat (limited to 'ft_strnstr.c')
-rw-r--r--ft_strnstr.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/ft_strnstr.c b/ft_strnstr.c
index b91d162..2b96b64 100644
--- a/ft_strnstr.c
+++ b/ft_strnstr.c
@@ -6,7 +6,7 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 16:07:54 by dkaiser #+# #+# */
-/* Updated: 2024/03/06 16:24:52 by dkaiser ### ########.fr */
+/* Updated: 2024/03/07 16:40:20 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
@@ -18,10 +18,12 @@ char *ft_strnstr(const char *haystack, const char *needle, size_t len)
size_t k;
i = 0;
+ if (*needle == '\0' || needle == haystack)
+ return ((char *)haystack);
while (i < len)
{
k = 0;
- while (haystack[i + k] == needle[k])
+ while (haystack[i + k] && haystack[i + k] == needle[k] && i + k < len)
{
k++;
}
@@ -33,9 +35,12 @@ char *ft_strnstr(const char *haystack, const char *needle, size_t len)
}
/* #include <stdio.h> */
-/* int main() { */
-/* char haystack[] = "Hello world"; */
-/* char needle[] = "d"; */
-/* printf("strnstr: %s\n", strnstr(haystack, needle, 10)); */
-/* printf("ft_strnstr: %s\n", ft_strnstr(haystack, needle, 10)); */
+
+/* int main(void) */
+/* { */
+/* char haystack[] = "M"; */
+/* char needle[] = "MZIRIBMZE"; */
+
+/* printf("strnstr: %s\n", strnstr(haystack, haystack, 2)); */
+/* printf("ft_strnstr: %s\n", ft_strnstr(haystack, haystack, 2)); */
/* } */