Partager via


strtok_s, _strtok_s_l, wcstok_s, _wcstok_s_l, _mbstok_s, _mbstok_s_l

Recherchez le premier jeton dans une chaîne, à l'aide de les paramètres régionaux ou des paramètres régionaux passés.Ce sont des versions de strtok, _strtok_l, wcstok, _wcstok_l, _mbstok, _mbstok_l avec des améliorations de sécurité comme décrit dans Fonctionnalités de sécurité du CRT.

Important

_mbstok_s et _mbstok_s_l ne peuvent pas être utilisés dans les applications qui s'exécutent dans les fenêtres d'exécution.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 le jeton ou les jetons.

  • strDelimit
    Jeu de caractères délimiteurs.

  • context
    Utilisé pour stocker les informations relatives à la position entre les appels à strtok_s

  • locale
    Paramètres régionaux à utiliser.

Valeur de retour

Retourne un pointeur vers le jeton trouvé dans strToken.Ils retournent NULL lorsque plus de jetons ne sont trouvés.Chaque appel modifie strToken en substituant un caractère d' NULL pour le premier séparateur qui se produit après le jeton retourné.

Conditions d'erreur

strToken

strDelimit

context

Valeur de retour

errno

NULL

any

pointeur vers un pointeur null

NULL

EINVAL

any

NULL

any

NULL

EINVAL

any

any

NULL

NULL

EINVAL

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

Notes

La fonction d' strtok_s recherche le premier jeton dans strToken.Le jeu de caractères dans strDelimit spécifie les séparateurs possibles du jeton à rechercher dans strToken sous l'appel actif.wcstok_s et _mbstok_ssont à caractères larges et des versions à caractères multioctets d' strtok_s.Les arguments et les valeurs de retour d' wcstok_s et l' _wcstok_s_l sont des chaînes à caractères larges ; ces d' _mbstok_s et _mbstok_s_l sont des chaînes de caractères multioctets.Ces trois fonctions se comportent de sinon.

Cette fonction valide ses paramètres.Si une condition d'erreur apparaît, comme dans le tableau de conditions d'erreur, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution pour continuer, ces errno défini par fonctions à EINVAL et à NULLde retour.

Mappages de routines de texte générique

Routine de TCHAR.H

_UNICODE et non définis _MBCS

_MBCS défini

_UNICODE défini

_tcstok_s

strtok_s

_mbstok_s

wcstok_s

_tcstok_s_l

_strtok_s_l

_mbstok_s_l

_wcstok_s_l

Au premier appel à strtok_s la fonction ignore de clés délimiteurs et retourne un pointeur vers le premier jeton dans strToken, en terminant le jeton à un caractère Null.Plus de jetons peuvent être éclatés du reste 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 l'appel.Le pointeur d' context contient la chaîne est lue et où dans la chaîne l'jeton doit être lu.Pour lire le premier jeton d' strToken, appelez strtok_s avec une valeur d' NULL de l'argument d' strToken, et passez le même paramètre d' context .L'argument d' NULLstrToken fait rechercher strtok_s le premier jeton dans strTokenmodifié.L'argument d' strDelimit peut prendre toute valeur d'un appel à la suivante afin que l'ensemble des séparateurs peut varier.

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

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

Configuration requise

Routine

En-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 des informations de compatibilité supplémentaires, consultez l' Compatibilité dans l'introduction.

Exemple

// 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);
        }
    }
}
  
  

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' Exemples d'appel de code non managé.

Voir aussi

Référence

Manipulation de chaînes (CRT)

Paramètres régionaux

Interprétation des séquences de caractères multioctets

strcspn, wcscspn, _mbscspn, _mbscspn_l

strspn, wcsspn, _mbsspn, _mbsspn_l