wcstok - Scinder en séquences une chaîne de caractères
larges
Bibliothèque C standard (
libc,
-lc)
#include <wchar.h>
wchar_t *wcstok(wchar_t *restrict wcs, const wchar_t *restrict delim,
wchar_t **restrict ptr);
La fonction
wcstok() est l'équivalent pour les caractères
larges de la fonction
strtok(3), avec un argument supplémentaire
permettant de l'employer dans un contexte multithread. On peut l'utiliser pour
scinder la chaîne de caractères larges
wcs en
séquences définies comme des sous-chaînes ne contenant
aucun caractère large contenu dans la chaîne
delim.
La recherche démarre en
wcs si
wcs n'est pas NULL, ou en
*ptr si
wcs est NULL. D'abord tous les caractères larges
délimiteurs sont ignorés, c'est-à-dire que le pointeur
est placé au-delà de tous les caractères se trouvant dans
delim. Si la fin de la chaîne est atteinte,
wcstok()
renvoie NULL pour indiquer qu'aucune séquence n'a été
trouvée, et stocke dans
*ptr une valeur qui forcera les
éventuels appels suivants de
wcstok() à renvoyer NULL.
Sinon, la fonction considère avoir atteint le début d'une
séquence et renvoie un pointeur dessus après l'avoir fait suivre
d'un caractère large nul (L'\0') (en remplaçant le premier
caractère large se trouvant dans
delim). Elle met à jour
le pointeur
*ptr pour qu'un nouvel appel de
wcstok() continue la
recherche à la suite d'une séquence trouvée.
La fonction
wcstok() renvoie un pointeur sur la séquence suivante
ou NULL si aucune séquence n'a été trouvée.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
wcstok() |
Sécurité des threads |
MT-Safe |
POSIX.1-2001, POSIX.1-2008, C99.
La chaîne de caractères larges
wcs originale est
modifiée de manière destructrice durant l'opération.
Le code suivant parcourt les séquences (token) contenues dans la
chaîne de caractères larges.
wchar_t * wcs = ...;
wchar_t * token;
wchar_t * etat;
for (token = wcstok(wcs, " \t\n", &etat);
token != NULL;
token = wcstok(NULL, " \t\n", &etat)) {
...
}
strtok(3),
wcschr(3)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]>,
Jean-Baptiste Holcroft <
[email protected]> et Grégoire
Scano <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]