strcspn done, should use it to reimplement strsplit[_whitespace] cleanly

This commit is contained in:
Jack Halford 2017-02-14 00:40:57 +01:00
parent 7d6845a44c
commit a8debcb08a
4 changed files with 17 additions and 1 deletions

View file

@ -153,6 +153,7 @@ str/ft_strchr.c\
str/ft_strclr.c\ str/ft_strclr.c\
str/ft_strcmp.c\ str/ft_strcmp.c\
str/ft_strcpy.c\ str/ft_strcpy.c\
str/ft_strcspn.c\
str/ft_strcut.c\ str/ft_strcut.c\
str/ft_strdel.c\ str/ft_strdel.c\
str/ft_strdup.c\ str/ft_strdup.c\

View file

@ -131,6 +131,7 @@ int ft_strappend(char **dst, char *src);
char *ft_strbetween(char *start, char *end); char *ft_strbetween(char *start, char *end);
char *ft_strreplace(char **str, char *start, char *end, char *new); char *ft_strreplace(char **str, char *start, char *end, char *new);
char *ft_strtok(char *s, const char *delim); 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_itoa_base(int nbr, char *base, char *flags);
char *ft_lltoa_base(long long nbr, char *base, char *flags); char *ft_lltoa_base(long long nbr, char *base, char *flags);

View file

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

View file

@ -12,7 +12,7 @@ char *ft_strtok(char *s, const char *delim)
return (0); return (0);
} while (ft_strchr(delim, ch)); } while (ft_strchr(delim, ch));
--s; --s;
lasts = s + strcspn(s, delim); lasts = s + ft_strcspn(s, delim);
if (*lasts != 0) if (*lasts != 0)
*lasts++ = 0; *lasts++ = 0;
return (s); return (s);