diff options
Diffstat (limited to 'libft/src/ft_substr.c')
-rw-r--r-- | libft/src/ft_substr.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/libft/src/ft_substr.c b/libft/src/ft_substr.c index 87c2568..0cb9733 100644 --- a/libft/src/ft_substr.c +++ b/libft/src/ft_substr.c @@ -11,23 +11,24 @@ /* / */ /* ************************************************************************** */ -#include "libft.h" +#include <libft.h> +#include <stdlib.h> #include <stddef.h> char *ft_substr(const char *s, unsigned int start, size_t len) { - char *nstr; + char *nstr; + size_t i; - if (start > ft_strlen(s) - 1) + i = 0; + if (!(nstr = (char*)malloc((len + 1) * sizeof(char)))) + return (NULL); + while (s[start + i] && i < len) { - nstr = (char*)ft_calloc(1, sizeof(char)); - if (!nstr) - return (NULL); - return (nstr); + nstr[i] = s[start + i]; + i++; } - nstr = (char*)ft_calloc(len + 1, sizeof(char)); - if (!nstr) - return (NULL); - return ((char*)ft_memcpy(nstr, s + start, len)); + nstr[i] = '\0'; + return (nstr); } |