char *strsplit(const char *str, char splitchar, int token_num)
{
char delimeter[2];
delimeter[0] = splitchar;
delimeter[1] = '\0';
int i;
char *token = str;
for (i = 0; *token; i++)
{
/* search for delimiters */
size_t len = strcspn(token, delimeter);
/* print the found text: use *.* in format to specify a maximum print size */
if (i == token_num)
return token;
/* advance pointer by one more than the length of the found text */
token += len + 1;
}
}
int main()
{
printf("token 0: %s\n", strsplit("/asdf/meow/moo", '/', 0));
printf("token 1: %s\n", strsplit("/asdf/meow/moo", '/', 1));
printf("token 2: %s\n", strsplit("/asdf/meow/moo", '/', 2));
}
mike@thiscomputer:~$ ./a.out
token 0: /asdf/meow/moo
token 1: asdf/meow/moo
token 2: meow/moo