aboutsummaryrefslogtreecommitdiffstats
path: root/libft/src/ft_strnstr.c
diff options
context:
space:
mode:
authorRudy Bousset <rbousset@z2r4p3.le-101.fr>2020-01-17 19:34:53 +0100
committerRudy Bousset <rbousset@z2r4p3.le-101.fr>2020-01-17 19:34:53 +0100
commita287db1124beda38507739f892c085bd3654ebd7 (patch)
treec439a25efe0309de08087d439a597f84583b257f /libft/src/ft_strnstr.c
parentRemoved libft (diff)
download42-cub3d-a287db1124beda38507739f892c085bd3654ebd7.tar.gz
42-cub3d-a287db1124beda38507739f892c085bd3654ebd7.tar.bz2
42-cub3d-a287db1124beda38507739f892c085bd3654ebd7.tar.xz
42-cub3d-a287db1124beda38507739f892c085bd3654ebd7.tar.zst
42-cub3d-a287db1124beda38507739f892c085bd3654ebd7.zip
Added libft
Diffstat (limited to 'libft/src/ft_strnstr.c')
-rw-r--r--libft/src/ft_strnstr.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/libft/src/ft_strnstr.c b/libft/src/ft_strnstr.c
new file mode 100644
index 0000000..711629d
--- /dev/null
+++ b/libft/src/ft_strnstr.c
@@ -0,0 +1,45 @@
+/* ************************************************************************** */
+/* LE - / */
+/* / */
+/* ft_strnstr.c .:: .:/ . .:: */
+/* +:+:+ +: +: +:+:+ */
+/* By: rbousset <marvin@le-101.fr> +:+ +: +: +:+ */
+/* #+# #+ #+ #+# */
+/* Created: 2019/10/10 00:23:15 by rbousset #+# ## ## #+# */
+/* Updated: 2019/10/13 08:34:35 by rbousset ### #+. /#+ ###.fr */
+/* / */
+/* / */
+/* ************************************************************************** */
+
+#include <libft.h>
+#include <stddef.h>
+#include <inttypes.h>
+
+char
+ *ft_strnstr(const char *haystack, const char *needle, size_t len)
+{
+ unsigned long i;
+ unsigned long j;
+ char *hay_ptr;
+ char *nee_ptr;
+
+ hay_ptr = (char*)haystack;
+ nee_ptr = (char*)needle;
+ i = 0;
+ if (!nee_ptr[0])
+ return (hay_ptr);
+ while (hay_ptr[i] && i < len)
+ {
+ j = 0;
+ while (nee_ptr[j] == hay_ptr[i + j] && (i + j) < len)
+ {
+ if (!nee_ptr[j + 1])
+ return (hay_ptr + i);
+ j++;
+ }
+ if (!hay_ptr[i + 1] && !j)
+ return (0);
+ i++;
+ }
+ return (0);
+}