zion -  strtok


Nom

strtok, strtok_r - Extraire des mots d'une chaîne.

Résumé

.nf #include <string.h> char *strtok (char * s , const char * delim ); char *strtok_r (char * s , const char * delim , char ** ptrptr); .fi

Description

Un élément lexical (token) est une chaîne non vide de caractères qui n'appartiennent pas à la chaîne delim, suivie de e0 ou d'un caractère appartenant à delim.

La fonction strtok() peut être utilisée pour scinder s en éléments lexicaux. Le premier appel à strtok() doit fournir s comme premier argument. Les appels ultérieurs doivent fournir NULL comme premier argument. Chaque appel renvoie un pointeur sur l'élément lexical suivant, ou NULL quand il n'y en a plus.

Si un token se termine par un délimiteur, le caractère de délimitation est surchargé par un e0 et un pointeur sur le caractère suivant est mémorisé pour l'appel suivant à strtok(). La chaîne de séparateurs delim peut être différente à chaque appel.

La fonction strtok_r () est identique à strtok () mais au lieu d'utiliser un buffer statique, elle emploie un pointeur sur un buffer "char *" alloué par l'utilisateur. Ce pointeur transmis comme paramètre ptrptr doit être toujours le même durant l'analyse d'une chaîne.

Bugs

Évitez au maximum d'utiliser cette fonction. Sinon, prenez note des informations suivantes :

[table][row]    [col] Cette fonction modifie son premier argument.

Les caractères de séparation sont surchargés, leur identité est donc perdue.

Cette fonction ne doit pas être invoquée sur une chaîne constante.

La fonction strtok () utilise un buffer statique et n'est donc pas sûre dans un contexte multithread. Dans ce cas il vaut mieux utiliser strtok_r ().

Valeur renvoyée

La fonction strtok() renvoie un pointeur sur l'élément lexical suivant, ou NULL s'il n'y en a plus.

Conformité

    strtok () SVID 3, POSIX, BSD 4.3, ISO 9899

    strtok_r () POSIX.1c


Voir aussi

index (3), memchr (3), rindex (3), strchr (3), strpbrk (3), strsep (3), strspn (3), strstr (3)

Traduction

Christophe Blaess, 1996-2003.

Poster un commentaire
Utilisateur
Mot de passe
 
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?