summaryrefslogtreecommitdiffstats
path: root/libft/src/ft_substr.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--libft/src/ft_substr.c23
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);
}