#include "libft.h" #include /* ** ft_strntok - extract tokens from strings ** ** input string ** delimiter set ** delimiter count, takes string before delimiter ** ** Parses a string into a sequence of tokens. ** Splits based on delimiter(s) and returns sequence ** ** Similar to MS-DOS FOR /F "tokens=* delims=*" */ char *ft_strntok(const char *str, const char *delim, int count) { char *tokens; int index = 0; tokens = (char *)ft_calloc(1, ft_strlen(str) + 1); while (*str != '\0' && count > 0) { while (ft_strchr(delim, *str) == NULL) { tokens[index] = *str; str++; index++; } if (count == 0 || *str == '\0') return (tokens); while (ft_strchr(delim, *str) != NULL) { str++; if (ft_strchr(delim, *str) == NULL) return (ft_strntok(str, delim, count - 1)); } tokens++; str++; } return (NULL); } int main(void) { printf("[%s]", ft_strntok("SPLIT THIS FUCKING STRING", ' ', 2)); // 0 returns SPLIT // 1 returns THIS // 2 returns FUCKING // 3 returns STRING }