Cette fonction est similaire à la fonction strtok(). La seule différence clé est _r, qui est appelée fonction réentrante.
Une fonction réentrante est une fonction qui peut être interrompue lors de l'exécution. Ce type de fonction peut être utilisé pour reprendre l'exécution.
Ainsi, les fonctions réentrantes sont thread-safe, ce qui signifie qu'elles peuvent être interrompues en toute sécurité par les threads sans causer de dommages. La fonction
strtok_r() a un paramètre supplémentaire appelé contexte. De cette façon, la fonction peut être restaurée au bon endroit. La
syntaxede la fonction strtok_r() est la suivante :
#include <string.h> char *strtok_r(char *string, const char *limiter, char **context);
Ce qui suit est un programme C utilisant la fonction strtok_r()-
Démonstration en direct
#include <stdio.h> #include <string.h> int main(){ char input_string[] = "Hello Tutorials Point"; char token_list[20][20]; char* context = NULL; char* token = strtok_r(input_string, " ", &context); int num_tokens = 0; // Index to token list. We will append to the list while (token != NULL){ strcpy(token_list[num_tokens], token); // Copy to token list num_tokens++; token = strtok_r(NULL, " ", &context); } // Print the list of tokens printf("Token List:</p><p>"); for (int i=0; i < num_tokens; i++) { printf("%s</p><p>", token_list[i]); } return 0; }
Quand ce qui précède le programme est exécuté, les éléments suivants seront générés Résultat-
Token List: Hello Tutorials Point
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!