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); }