Fonction strtok en c

Fonction strtok en c

«La fonction strtok () est une fonction de bibliothèque C prédéfinie qui nous permet de diviser les chaînes en plusieurs chaînes ou zéro, le point le plus important tout en divisant les chaînes pour garder à l'esprit est qu'il ne peut pas être vide ou nul.

Deux paramètres sont transmis à la fonction strtok () qui est responsable de la tokenisation de la chaîne; Le premier paramètre est le ON qui contient la chaîne qui doit être tokenisée, tandis que la seconde est le délimiteur qui contient le mot ou le caractère qui définira le début et la fin de la chaîne à laquelle il est tokenisé. La fonction strtok () ignore la partie délimiteur et affiche simplement la chaîne qui est juste à côté du délimiteur.

Chaque fois que la fonction strtok () est appelée, le pointeur vers le jeton suivant, qui est indiqué par une chaîne à terminaison nulle, est renvoyé. Lorsqu'il explique la fin de la chaîne où aucun jeton n'est découvert, il retournera null."

Syntaxe: m

$ strtok (chaîne, jeton);

Dans la syntaxe mentionnée ci-dessus, deux arguments sont passés: le premier paramètre, «String», est celui qui est la chaîne principale qui doit être analysée, tandis que le deuxième paramètre, «jeton», est le délimiteur qui définira la rupture point de la chaîne.

Supposons que lorsque la fonction strtok () est appelée pour la première fois, il commencera à rechercher le délimiteur de caractère étape par étape. Comme nous le savons, les chaînes sont stockées sous la forme d'un tableau qui alloue des adresses mémoire consécutives pour stocker le pointeur un par un qui vérifiera le délimiteur. Dans le cas où le délimiteur est trouvé, il divisera la chaîne en segments; Si aucun délimiteur n'est trouvé, il recherchera le terminateur ou la valeur nul, qui indiquera le point final de la chaîne, il renverra la valeur nul.

Une fois la chaîne divisée, il ne peut pas être converti à son état d'origine. Pour éviter cela, nous devons d'abord copier la chaîne dans le tampon, puis nous passerons l'adresse du tampon au strtok () afin que à travers cela, nous puissions préserver notre chaîne d'origine.

Exemple 1

Dans cet exemple, nous allons implémenter la fonction strtok () pour diviser la chaîne unique en plusieurs segments. Passant à notre première étape dans laquelle nous déclarons les fichiers d'en-tête «String.h ”et« stdio.h ”. Comme nous allons travailler avec des chaînes, il est donc nécessaire d'inclure un fichier d'en-tête de chaîne à moins que nous ne puissions pas implémenter des chaînes. Puis passant à notre fonction principale, où nous avons déclaré 3 tableaux de caractères qui sont des chaînes [], del [] et la variable de caractère nommé mon jeton.

String [] est le tableau de caractères qui est responsable de la maintenance d'une chaîne de caractères qui sera analysée pour la diviser en parties. Le Dell [] est le tableau de caractères constant qui fonctionne comme un délimiteur, ou nous pouvons dire que c'est le caractère qui définira le pointeur, à quel point il devrait briser la chaîne; Dans notre cas, le délimiteur est «virgule». Lorsque la troisième variable, MyToken, est responsable du stockage de la valeur de retour de la fonction strtok ().

#inclure
#inclure
int main ()
Char String [] = "Mon nouveau projet, mon projet Strtok";
const char del [] = ",";
char * mytoken;
myToken = strtok (String, del);
Pendant que (mytoken != Null)
printf ("% s \ n", mytoken);
mytoken = strtok (null, del);

return (0);

Après avoir déclaré avec succès nos variables, nous attribuerons des variables mytoken la fonction strtok () dans laquelle nous passerons les variables comme le paramètre que nous avons déjà déclaré ci-dessus, le tableau des chaînes et la variable Delimiter. Ensuite, nous avons créé une boucle de temps dans laquelle nous avons passé notre variable mytoken, qui maintient la valeur de retour de la fonction strtok (). Tandis que la boucle vérifiera la condition que nous avons appliquée; Si le mytoken n'est pas nul, il se déplacera dans la partie intérieure de la boucle while; Sinon, il n'affichera aucune exécution.

Supposons que notre condition est vraie; Ensuite, il imprimera la chaîne qui est divisée en segments. Là encore, en attribuant une fonction Strtok () à MyToken dans laquelle nous allons maintenant passer l'élément nul et le délimiteur. Null est utilisé pour instruire la fonction strtok () pour arrêter l'analyse et retourner null / 0 chaque fois que la chaîne est terminée, ou une variable nul est découverte.

Jusqu'à ce que toute la chaîne soit récupérée pour les délimiteurs et décomposée en cordes en fonction du délimiteur défini, la boucle while n'arrêtera pas de fonctionner. Il imprimera la chaîne juste à côté de chaque délimiteur et se termine chaque fois que le délimiteur sera découvert. Dans notre cas, nous n'avons utilisé qu'un seul délimiteur dans notre phrase, donc il se divise simplement en deux segments, comme le montre la figure ci-dessous.

Exemple 2

Dans cet exemple, nous diviserons les tableaux de chaînes en plusieurs segments en utilisant des espaces comme délimiteur. Dans l'exemple ci-dessus, nous avons simplement divisé deux chaînes en segments, mais en cela, nous utiliserons des espaces comme délimiteur et diviserons une chaîne en plusieurs segments.

#inclure
#inclure
int main()

Char String [] = "Ma fonction Strtok dans le langage C";
char * strtoken;
strtoken = strtok (string, "");
Pendant que (strtoken != Null)

printf ("% s \ n", strtoken);
strtoken = strtok (null, "");

retour 0;

Comme indiqué dans le code ci-dessus, nous avons juste inclus notre fichier d'en-tête; Après avoir inclus le fichier d'en-tête, nous passerons dans notre fonction principale, où nous déclarerons deux variables de caractères dans lesquelles on sera responsable de la maintenance de la chaîne et de la seconde qui sera responsable de la valeur de retour de la fonction strtok (). Dans ce cas, nous avons la variable «String []» qui stocke la chaîne qui doit être divisée, tandis que le «strtoken» est utilisé pour stocker la valeur de retour de la fonction strtok ().

Ensuite, nous appellerons la fonction strtok (), que nous passons aux paramètres, alors, l'une est la chaîne qui doit être analysée, et la seconde est le délimiteur lui-même; Dans cet exemple, le délimiteur est l'espace. Comme indiqué dans la figure ci-dessous, chaque fois que l'espace est découvert, il divisera la chaîne en segments. Le délimiteur ne sera pas imprimé la première lettre à la fin où le prochain délimiteur sera trouvé; il imprimera toute cette chaîne entre les délimiteurs.

Conclusion

Dans ce guide, nous avons étudié brièvement la fonction strtok (), dans laquelle nous avons décrit le but de la fonction strtok () ainsi que sa mise en œuvre et comment nous diviserons une seule chaîne en plusieurs segments en utilisant une variable de caractères unique qui est la délimiteur. La fonction strtok () est facile à utiliser et à interpréter les chaînes. Le but de notre article est de vous permettre d'apprendre facilement la fonction strtok () par définition ainsi que par plusieurs exemples.