strtok_s, _strtok_s_l, wcstok_s, _wcstok_s_l, _mbstok_s, _mbstok_s_l

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Recherche le jeton suivant dans la chaîne, en utilisant les paramètres régionaux actuels ou des paramètres régionaux qui lui sont passée. Ces versions de strtok, _strtok_l, wcstok, _wcstok_l, _mbstok, _mbstok_l ont des améliorations de sécurité, comme décrit dans fonctionnalités de sécurité de la bibliothèque CRT.

System_CAPS_ICON_important.jpg Important

_mbstok_s et _mbstok_s_l ne peuvent pas être utilisées dans les applications qui s'exécutent dans Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge avec /ZW.

  
      char *strtok_s(  
char *strToken,  
const char *strDelimit,  
   char **context  
);  
char *_strtok_s_l(  
char *strToken,  
const char *strDelimit,  
   char **context,  
_locale_tlocale  
);  
wchar_t *wcstok_s(  
wchar_t *strToken,  
const wchar_t *strDelimit,   
   wchar_t**context  
);  
wchar_t *_wcstok_s_l(  
wchar_t *strToken,  
const wchar_t *strDelimit,   
   wchar_t**context,  
_locale_tlocale  
);  
unsigned char *_mbstok_s(  
unsigned char*strToken,  
const unsigned char *strDelimit,   
   char **context  
);  
unsigned char *_mbstok_s(  
unsigned char*strToken,  
const unsigned char *strDelimit,   
   char **context,  
_locale_tlocale  
);  

Paramètres

strToken
Chaîne contenant l’ou les jetons.

strDelimit
Jeu de caractères de séparation.

context
Permet de stocker des informations de position entre les appelsstrtok_s

locale
Paramètres régionaux à utiliser.

Retourne un pointeur vers le jeton suivant dans strToken. Elles retournent NULL lorsque ne sont trouvent aucuns plus de jetons. Chaque appel modifie strToken en remplaçant un NULL caractère pour le premier délimiteur qui se produit après que le jeton retourné.

Conditions d’erreur

strTokenstrDelimitcontextValeur de retourerrno
NULLanypointeur vers un pointeur nullNULLEINVAL
anyNULLanyNULLEINVAL
anyanyNULLNULLEINVAL

Si strToken est NULL mais que le contexte est un pointeur vers un pointeur de contexte valide, aucune erreur.

Le strtok_s fonction recherche le jeton suivant dans strToken. Le jeu de caractères dans strDelimit spécifie des délimiteurs possibles du jeton doit être recherché dans strToken lors de l’appel en cours. wcstok_set _mbstok_ssont des versions à caractères larges et à caractères multioctets de strtok_s. Les arguments et les valeurs de retour de wcstok_s et _wcstok_s_l sont des caractères larges chaînes ; ceux de _mbstok_s et _mbstok_s_l sont des chaînes de caractères multioctets. Ces trois fonctions se comportent sinon de façon identique.

Cette fonction valide ses paramètres. Si une condition d’erreur se produit, comme dans le tableau de Conditions d’erreur, le Gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, ces fonctions attribuent à errno la valeur EINVAL et retournent NULL.

Mappages de routines de texte générique

Routine TCHAR.H_UNICODE et _MBCS non définis_MBCS défini_UNICODE défini
_tcstok_sstrtok_s_mbstok_swcstok_s
_tcstok_s_l_strtok_s_l_mbstok_s_l_wcstok_s_l

Le premier appel à strtok_s ignore les délimiteurs de début de la fonction et retourne un pointeur vers le premier jeton dans strToken, le jeton par un caractère null de fin d’exécution. Plus de jetons peuvent être scindés hors de la suite de strToken par une série d’appels à strtok_s. Chaque appel à strtok_s modifie strToken en insérant un caractère null après le jeton retourné par cet appel. Le context pointeur assure le suivi de chaîne est en cours de lecture et l’emplacement dans la chaîne de jeton suivant à lire. Pour lire le jeton suivant à partir de strToken, appelez strtok_s avec un NULL la valeur pour le strToken argument et passer le même context paramètre. Le NULL strToken argument causes strtok_s pour rechercher le jeton suivant dans le strToken. Le strDelimit argument peut prendre n’importe quelle valeur d’un appel à l’autre afin que l’ensemble de délimiteurs peut varier.

Étant donné que la context paramètre remplace les tampons statiques utilisés dans strtok et _strtok_l, il est possible d’analyser les deux chaînes simultanément dans le même thread.

La valeur de sortie est affectée par la définition de la LC_CTYPE catégorie de paramètres régionaux ; consultez setlocale pour plus d’informations. Les versions de ces fonctions sans le suffixe _l utilisent les paramètres régionaux pour ce comportement dépendant des paramètres régionaux ; les versions avec le suffixe _l sont identiques, sauf qu'elles utilisent à la place les paramètres régionaux transmis. Pour plus d’informations, consultez Locale.

RoutineEn-tête requis
strtok_s<string.h>
_strtok_s_l<string.h>
wcstok_s,

 _wcstok_s_l
<string.h> ou <wchar.h>
_mbstok_s,

 _mbstok_s_l
<mbstring.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité.

// crt_strtok_s.c  
// In this program, a loop uses strtok_s  
// to print all the tokens (separated by commas  
// or blanks) in two strings at the same time.  
//  
  
#include <string.h>  
#include <stdio.h>  
  
char string1[] =  
    "A string\tof ,,tokens\nand some  more tokens";  
char string2[] =  
    "Another string\n\tparsed at the same time.";  
char seps[]   = " ,\t\n";  
char *token1 = NULL;  
char *token2 = NULL;  
char *next_token1 = NULL;  
char *next_token2 = NULL;  
  
int main( void )  
{  
    printf( "Tokens:\n" );  
  
    // Establish string and get the first token:  
    token1 = strtok_s( string1, seps, &next_token1);  
    token2 = strtok_s ( string2, seps, &next_token2);  
  
    // While there are tokens in "string1" or "string2"  
    while ((token1 != NULL) || (token2 != NULL))  
    {  
        // Get next token:  
        if (token1 != NULL)  
        {  
            printf( " %s\n", token1 );  
            token1 = strtok_s( NULL, seps, &next_token1);  
        }  
        if (token2 != NULL)  
        {  
            printf("        %s\n", token2 );  
            token2 = strtok_s (NULL, seps, &next_token2);  
        }  
    }  
}  

Tokens:  
 A  
        Another  
 string  
        string  
 of  
        parsed  
 tokens  
        at  
 and  
        the  
 some  
        same  
 more  
        time.  
 tokens  

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Manipulation de chaînes
Paramètres régionaux
Interprétation des séquences de caractères multioctets
strcspn, wcscspn, _mbscspn, _mbscspn_l
strspn, wcsspn, _mbsspn, _mbsspn_l

Afficher: