char * strtok_r(char *, const char *, char **)
strtok_r parses string into tokens. The first call to strtok_r should have string as
its first argument. Subsequent calls should have the first argument set to NULL. If a
token ends with a delimiter, this delimiting character is overwritten with a '\0' and a
pointer to the next character is saved for the next call to strtok_r. The delimiter
string delim may be different for each call.
last is a user allocated char* pointer. It must be
the same while parsing the same string. strtok_r is a reentrant version of strtok().
The strtok_r() function returns a pointer to the next token or NULL when no more tokens are found.