22 lines
397 B
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);
|
|
}
|