Strtok() function in C
0 202
The strtok function in C is used for tokenizing (splitting) strings into smaller parts, known as tokens, based on a specified delimiter.
It's a part of the C standard library <string.h>.
Using strtok effectively streamlines tasks involving string manipulation and parsing in C programs, improving efficiency and readability.
However, care should be taken in multithreaded environments or when working with dynamically allocated strings to avoid unintended side effects.
Syntax strtok function in C:
char *strtok(char *str, const char *delimiters);
str:
The string to be tokenized.
The first call to strtok should pass the string to tokenize.
Subsequent calls should pass NULL.
delimiters:
A string containing delimiter characters.
These characters are used to determine where to split the string into tokens.
Example:
\\Program for strtok function in C #include<stdio.h>#include<string.h> int main() { char str[] = "Hello, world! Welcome, to strtok function."; char delimiters[] = " ,!."; // Delimiters are space, comma, exclamation mark, and period char *token; // Get the first token token = strtok(str, delimiters); // Walk through other tokens while (token != NULL) { printf("%s\n", token); token = strtok(NULL, delimiters); } return 0; }
Output:
Hello world Welcome to strtok function
Advantages and Key Points
Efficient String Parsing: strtok simplifies the process of splitting strings into smaller parts based on specified delimiters.
Modifies the Input String: strtok modifies the original string during tokenization. It replaces delimiter characters with null terminators, so the original string is altered.
Token Retrieval: After the first call, subsequent calls to strtok with NULL as the first argument continue parsing the same string from where it left off.
Not Thread-Safe: strtok is not thread-safe because it relies on static variables to keep track of the string being parsed and the current parsing position.
Use of strtok_r for Thread Safety: To ensure thread safety in multithreaded programs, strtok_r function should be used.
It's a reentrant version of strtok that uses additional arguments to maintain parsing state.
Returns NULL When No More Tokens: After all tokens have been extracted from the string, subsequent calls to strtok return NULL.
Tokenized Strings Can Be Processed: Once tokenized, individual tokens can be processed independently, allowing for various string manipulation tasks.
Share:
Comments
Waiting for your comments