aboutsummaryrefslogtreecommitdiffstats
path: root/src/ft_substr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ft_substr.c')
-rw-r--r--src/ft_substr.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/ft_substr.c b/src/ft_substr.c
new file mode 100644
index 0000000..0db72d0
--- /dev/null
+++ b/src/ft_substr.c
@@ -0,0 +1,23 @@
+#include "libft.h"
+#include <stdlib.h>
+
+char *
+ft_substr (char const *s, unsigned int start, size_t len)
+{
+ size_t slen;
+ size_t actual;
+ char *sub;
+
+ slen = ft_strlen (s);
+ if (start >= slen)
+ return (ft_strdup (""));
+ actual = slen - start;
+ if (actual > len)
+ actual = len;
+ sub = malloc (actual + 1);
+ if (!sub)
+ return (NULL);
+ ft_memcpy (sub, s + start, actual);
+ sub[actual] = '\0';
+ return (sub);
+}