The C library function char *strtok(char *str, const char *delim) breaks string str into a series of tokens using the delimiter delim.
Description
The C library function char *strtok(char *str, const char *delim) breaks string str into a series of tokens using the delimiter delim.
This function is part of <string.h>
Declaration
Following is the declaration for strtok() function.
char *strtok(char *str, const char *delim)
Parameters
str − The contents of this string are modified and broken into smaller strings (tokens).
delim − This is the C string containing the delimiters. These may vary from one call to another.
Return Value
This function returns a pointer to the first token found in the string. A null pointer is returned if there are no tokens left to retrieve.
Example
The following example shows the usage of strtok() function.
#include <string.h>
#include <stdio.h>
int main () {
char str[80] = "This is - www.tutorialspoint.com - website";
const char s[2] = "-";
char *token;
/* get the first token */
token = strtok(str, s);
/* walk through other tokens */
while( token != NULL ) {
printf( " %s\n", token );
token = strtok(NULL, s);
}
return(0);
}
Let us compile and run the above program that will produce the following result −
This is
www.tutorialspoint.com
website
Another example:
How we represent a music note:
A#4@1/8
In the code:
// Parse line into note and duration
string note = strtok(line, "@");
string fraction = strtok(NULL, "@");
We also did the same thing when calculating the duration of the music note:
Like if the fraction we get is X/Y, we would parse this string into nominator and denominator of the fraction, and then we can calculate it.
// Parse length into d and e
string d = strtok(length, "/");
string e = strtok(NULL, "/");
So d is the top of the fraction, e is the bottom of the fraction. Then we can calculate.