lib/libft/ft_substr.c

22 lines
397 B
C

char *
ft_substr(char const *s, u32 start, size_t len) {
i64 size;
char *new_s;
if (s == NULL)
return (NULL);
size = ft_strlen(s) - start;
if (size < 0)
size = 0;
else if ((u64)size > len)
size = len;
new_s = ft_calloc(size + 2, 1);
if (new_s == NULL)
return (NULL);
if (start <= ft_strlen(s))
ft_strlcpy(new_s, s + start, len + 1);
else
new_s[0] = '\0';
return (new_s);
}