Aracılığıyla paylaş


strtok_s, _strtok_s_l, wcstok_s, _wcstok_s_l, _mbstok_s, _mbstok_s_l

Sonraki belirteç geçerli yerel ayarı veya geçirilen yerel ayar kullanarak bir dize içinde bulur.Bu strtok, _strtok_l, wcstok, _wcstok_l, _mbstok, _mbstok_l sürümlerinde CRT'deki Güvenlik Özellikleri içinde açıklandığı gibi güvenlik geliştirmeleri mevcut olabilir.

Önemli notÖnemli

_mbstok_s ve _mbstok_s_l Windows Çalışma Zamanı'nda yürütülen uygulamalarda kullanılamazlar.Daha fazla bilgi için bkz /ZW ile desteklenmeyen CRT işlevleri.

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

Parametreler

  • strToken
    Belirteci veya belirteçleri içeren dize.

  • strDelimit
    Sınırlayıcı karakter kümesi.

  • context
    Çağrıları arasında konum bilgilerini depolamak için kullanılanstrtok_s

  • locale
    Kullanılacak yerel ayar.

Dönüş Değeri

Bulunan sonraki belirteç için işaretçi döndüren strToken.Döndürmeleri NULL yok daha fazla belirteçleri bulunduğunda.Her arama değiştirir strToken yerine göre bir NULL için verilen belirtecin sonra oluşan ilk sınırlayıcı karakter.

Hata Durumları

strToken

strDelimit

context

Dönüş değeri

errno

NULL

any

bir null işaretçi işaretçi

NULL

EINVAL

any

NULL

any

NULL

EINVAL

any

any

NULL

NULL

EINVAL

Yoksa strToken olan NULL , ancak içeriği geçerli bağlam işaretçi işaretçi, hata yok.

Notlar

strtok_s İşlev bulur sonraki belirteç strToken.Karakter kümesinde strDelimit içinde bulunan belirtecin olası sınırlayıcıları belirtir strToken geçerli arama.wcstok_sve _mbstok_s geniş karakter ve çok baytlı karakter sürümü olan strtok_s.Bağımsız değişkenleri ve dönüş değerleri wcstok_s ve _wcstok_s_l geniş karakter dizeleridir; Bu, _mbstok_s ve _mbstok_s_l çok baytlı karakter dizeleridir.Bu üç işlev, aynı şekilde davranır.

Bu işlev, parametrelerini doğrular.Bir hata durumu oluşursa, hata durumları tablo olduğu gibi geçersiz bir parametre işleyicisi, açıklandığı gibi çağrılır Parametre Doğrulama.Yürütmenin devam etmesine izin verilirse, bu işlevler errno öğesini EINVAL olarak ayarlar ve NULL döndürür.

Genel Metin Yordam Eşleşmeleri

TCHAR.H yordamı

_UNICODE & _MBCS tanımlanmamış

_MBCS tanımlanmış

_UNICODE tanımlanmış

_tcstok_s

strtok_s

_mbstok_s

wcstok_s

_tcstok_s_l

_strtok_s_l

_mbstok_s_l

_wcstok_s_l

İlk çağrı üzerinde strtok_s işlevi baştaki sınırlayıcıları atlar ve ilk belirteci için bir işaretçi döndürür strToken, belirteç boş karakter ile sona eriyor.Daha fazla belirteçleri geri kalanı dışında bölünebilecek strToken bir dizi çağrı strtok_s.Her arama strtok_s değiştirir strToken sonra o çağrı tarafından döndürülen belirtecin bir null karakteri ekleyerek.context Hangi dize okumak ve dizenin sonraki belirteç okunacak yerde işaretçiyi izler.Sonraki simgesinden okunacak strToken, çağrı strtok_s ile bir NULL değerini strToken bağımsız değişkeni ve aynı context parametre.NULLstrToken Bağımsız değişkeni neden strtok_s sonraki belirteç değiştirilmiş aramak için strToken. strDelimit Bağımsız değişkeni, bir sonraki çağrı arasında herhangi bir değer alabilir, böylece sınırlayıcı kümesi farklı olabilir.

Bu yana context parametre olarak kullanılan statik arabellekleri yerine geçer strtok ve _strtok_l, aynı iş parçacığı içinde aynı anda iki dizeyi ayrıştırmak mümkündür.

Çıkış değeri, yerel ayarın LC_CTYPE kategori ayarından etkilenir; daha fazla bilgi için, bkz. setlocale.Bu işlevlerin, _l sonekine sahip olmayan sürümleri, yerel ayara bağlı davranışı için, geçerli yerel ayarı kullanır; _l sonekine sahip sürümler, bunun yerine iletilmiş yerel ayar parametresini kullanması hariç aynıdır.Daha fazla bilgi için bkz. Yerel Ayar.

Gereksinimler

Yordam

Gerekli başlık

strtok_s

<string.h>

_strtok_s_l

<string.h>

wcstok_s,

_wcstok_s_l

<string.h> or <wchar.h>

_mbstok_s,

_mbstok_s_l

<mbstring.h>

Ek uyumluluk bilgileri için bkz. Uyumluluk.

Örnek

// 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 Eşdeğeri

Uygulanamaz. Standart C işlevini çağırmak için PInvoke kullanın. Daha fazla bilgi için bkz. Platform Çağırma Örnekleri.

Ayrıca bkz.

Başvuru

Dize Düzenlemesi (CRT)

Yerel Ayar

Çok Baytlı Karakter Sıralarının Yorumu

strcspn, wcscspn, _mbscspn, _mbscspn_l

strspn, wcsspn, _mbsspn, _mbsspn_l