From a8debcb08a376adcdce37e3da738217cba6bd0e6 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 14 Feb 2017 00:40:57 +0100 Subject: [PATCH] strcspn done, should use it to reimplement strsplit[_whitespace] cleanly --- libftasm/Makefile | 1 + libftasm/includes/libft.h | 1 + libftasm/src/str/ft_strcspn.c | 14 ++++++++++++++ libftasm/src/str/ft_strtok.c | 2 +- 4 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 libftasm/src/str/ft_strcspn.c diff --git a/libftasm/Makefile b/libftasm/Makefile index ced47d26..dbd60f87 100644 --- a/libftasm/Makefile +++ b/libftasm/Makefile @@ -153,6 +153,7 @@ str/ft_strchr.c\ str/ft_strclr.c\ str/ft_strcmp.c\ str/ft_strcpy.c\ +str/ft_strcspn.c\ str/ft_strcut.c\ str/ft_strdel.c\ str/ft_strdup.c\ diff --git a/libftasm/includes/libft.h b/libftasm/includes/libft.h index d6020056..60eaf250 100644 --- a/libftasm/includes/libft.h +++ b/libftasm/includes/libft.h @@ -131,6 +131,7 @@ int ft_strappend(char **dst, char *src); char *ft_strbetween(char *start, char *end); char *ft_strreplace(char **str, char *start, char *end, char *new); char *ft_strtok(char *s, const char *delim); +size_t ft_strcspn(char *s, const char *delim); char *ft_itoa_base(int nbr, char *base, char *flags); char *ft_lltoa_base(long long nbr, char *base, char *flags); diff --git a/libftasm/src/str/ft_strcspn.c b/libftasm/src/str/ft_strcspn.c new file mode 100644 index 00000000..4abf1b2d --- /dev/null +++ b/libftasm/src/str/ft_strcspn.c @@ -0,0 +1,14 @@ +#include "libft.h" + +size_t ft_strcspn(char *s, const char *delim) +{ + char *str; + + str = s; + while(*str) + if(strchr(delim,*str)) + return (str - s); + else + str++; + return (str - s); +} diff --git a/libftasm/src/str/ft_strtok.c b/libftasm/src/str/ft_strtok.c index 74ebd7e6..53deadf6 100644 --- a/libftasm/src/str/ft_strtok.c +++ b/libftasm/src/str/ft_strtok.c @@ -12,7 +12,7 @@ char *ft_strtok(char *s, const char *delim) return (0); } while (ft_strchr(delim, ch)); --s; - lasts = s + strcspn(s, delim); + lasts = s + ft_strcspn(s, delim); if (*lasts != 0) *lasts++ = 0; return (s);