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.
![]() |
---|
_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_slocale
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
Çok Baytlı Karakter Sıralarının Yorumu