aboutsummaryrefslogtreecommitdiffstats
path: root/src/ft_substr.c
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-02-21 16:29:51 +0100
committerThomas Vanbesien <tvanbesi@proton.me>2026-02-21 16:29:51 +0100
commita8f7e6e83bc4846c94c0489e0f6e0f807b35073e (patch)
tree0d245c73490427a39d4338da483e335a267c6917 /src/ft_substr.c
parentfd62678a9cf38e3f70efbdd093c1012d448548e1 (diff)
downloadLibft-a8f7e6e83bc4846c94c0489e0f6e0f807b35073e.tar.gz
Libft-a8f7e6e83bc4846c94c0489e0f6e0f807b35073e.zip
Implement libft Part 2 with tests
Add ft_substr, ft_strjoin, ft_strtrim, ft_split, ft_itoa, ft_strmapi, ft_striteri, ft_putchar_fd, ft_putstr_fd, ft_putendl_fd, ft_putnbr_fd.
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);
+}