There are no NULL values in between. I presume you mean how does one extract all values in the string, which would include the "34". The '~' is not a NULL value, it is the chosen delimiter. You need to read the documentation of strtok. On the first call, you pass strtok a pointer to the string. It returns the first token, tokens being defined by the delimiters. To get the next token, you pass a NULL pointer rather than a pointer to the string. You get one additional token for each call. You stop when strtok returns a NULL pointer.

Logical reasoning, then, suggests that we put the subsequent calls in a loop and break the loop when strtok returns NULL.