Freigeben über


strtok_s, _strtok_s_l, wcstok_s, _wcstok_s_l, _mbstok_s, _mbstok_s_l

Suchen Sie das folgende Token in einer Zeichenfolge, unter Verwendung des aktuellen Gebietsschemas oder eines Gebietsschemas, die übergeben werden.Diese sind Versionen von strtok, _strtok_l, wcstok, _wcstok_l, _mbstok, _mbstok_l mit Sicherheitserweiterungen, wie in Sicherheitsfeatures im CRT beschrieben.

Wichtiger HinweisWichtig

_mbstok_s und _mbstok_s_l können in Anwendungen nicht verwendet werden, die in der Windows Runtime ausführen.Weitere Informationen finden Sie unter CRT-Funktionen unterstützt nicht mit /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 );

Parameter

  • strToken
    Zeichenfolge, die Token oder Token enthält.

  • strDelimit
    Satz Trennzeichen.

  • context
    Wird verwendet, um Positionsinformationen zwischen Aufrufen von strtok_s zu speichern

  • locale
    Zu verwendende Gebietsschema.

Rückgabewert

Gibt einen Zeiger auf folgenden Token zurück, das in strToken gefunden wird.Sie geben NULL zurück, wenn nicht mehr Token gefunden werden.Jeder Aufruf strToken ändert, indem er ein NULL Zeichen für das erste Trennzeichen ersetzt, das nach dem zurückgegebenen Token auftritt.

Fehlerbedingungen

strToken

strDelimit

context

Rückgabewert

errno

NULL

any

Zeiger auf einen NULL-Zeiger

NULL

EINVAL

any

NULL

any

NULL

EINVAL

any

any

NULL

NULL

EINVAL

Wenn strTokenNULL ist, aber Kontext ein Zeiger auf einen gültigen Kontextzeiger ist, gibt es keinen Fehler.

Hinweise

Die strtok_s-Funktion sucht das folgende Token in strToken.Der Satz von Zeichen in strDelimit gibt mögliche Trennzeichen des in an strToken auf dem aktuellen Aufruf gefunden werden Token.wcstok_s und _mbstok_s sind Breitzeich und Mehrbytezeichen-Versionen von strtok_s.Die Argumente und Rückgabewerte von wcstok_s und _wcstok_s_l sind Breitzeichen-Zeichenfolgen; die von _mbstok_s und _mbstok_s_l sind Mehrbyte-Zeichenfolgen.Diese drei Funktionen verhalten sich andernfalls identisch.

Diese Funktion überprüft seine Parameter.Wenn ein Fehlerzustand auftritt, wie in der Fehlerzustandstabelle, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, legen diese Funktionen errno auf EINVAL fest und geben NULL zurück.

Zuordnung generische Textroutinen

TCHAR.H-Routine

_UNICODE & _MBCS nicht definiert.

_MBCS definiert

_UNICODE definiert

_tcstok_s

strtok_s

_mbstok_s

wcstok_s

_tcstok_s_l

_strtok_s_l

_mbstok_s_l

_wcstok_s_l

Beim ersten Aufruf zu strtok_s überspringt die Funktion führende Trennzeichen und gibt einen Zeiger auf das erste Token in strToken zurück und beendet das Token mit einem NULL-Zeichen.Weitere Token können vom Rest von strToken durch eine Reihe von Aufrufe strtok_s umgerechnet werden.Jeder Aufruf von strtok_s ändert strToken, indem er ein NULL-Zeichen nach dem Token einfügt, das von diesem Aufruf zurückgegeben wird.Der context Zeiger verfolgt, den Zeichenfolge gelesen und wo in der Zeichenfolge das folgende Token gelesen werden soll.Um das folgende Token von strToken zu lesen, rufen Sie strtok_s mit einem NULL-Wert für das Argument strToken, und führen Sie den gleichen context-Parameter.Das Argument NULLstrToken bewirkt, strtok_s für folgende Token in geänderten strToken zu suchen.Das strDelimit-Argument kann jeden Wert von einem Aufruf zum nächsten erstellen, damit der Satz von Trennzeichen variieren kann.

Da der context-Parameter die statischen Puffer ersetzt, die in strtok und in _strtok_l verwendet werden, ist es möglich, dass zwei Zeichenfolgen im selben Thread gleichzeitig zu analysieren.

Der Ausgabewert wird durch die Einstellung der LC_CTYPE Kategorieneinstellung des Gebietsschemas betroffen; setlocale finden Sie weitere Informationen.Die Versionen dieser Funktionen ohne das _l Suffix verwenden das aktuelle Gebietsschema für dieses Verhalten abhängig; die Versionen mit dem _l Suffix sind identisch, allerdings verwenden den Gebietsschemaparameter, der in stattdessen übergeben wird.Weitere Informationen finden Sie unter Gebietsschema.

Anforderungen

Routine

Erforderlicher Header

strtok_s

<string.h>

_strtok_s_l

<string.h>

wcstok_s,

_wcstok_s_l

<string.h> oder <wchar.h>

_mbstok_s,

_mbstok_s_l

<mbstring.h>

So zusätzlicher Kompatibilitätsinformation finden Sie unter Kompatibilität in der Einführung.

Beispiel

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

.NET Framework-Entsprechung

Nicht zutreffend. Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Zeichenfolgenbearbeitung (CRT)

Gebietsschema

Interpretation von Mehrbytezeichen-Sequenzen

strcspn, wcscspn, _mbscspn, _mbscspn_l

strspn, wcsspn, _mbsspn, _mbsspn_l