Aracılığıyla paylaş


strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l

Yerel ayara özgü bilgilere göre bir dizeyi dönüştürme.

Sözdizimi

size_t strxfrm(
   char *strDest,
   const char *strSource,
   size_t count
);
size_t wcsxfrm(
   wchar_t *strDest,
   const wchar_t *strSource,
   size_t count
);
size_t _strxfrm_l(
   char *strDest,
   const char *strSource,
   size_t count,
   _locale_t locale
);
size_t wcsxfrm_l(
   wchar_t *strDest,
   const wchar_t *strSource,
   size_t count,
   _locale_t locale
);

Parametreler

strDest
Hedef dize.

strSource
Kaynak dize.

count
içinde strDestyerleştirecek karakter sayısı üst sınırı.

locale
Kullanılacak yerel ayar.

Dönüş değeri

Sonlandırıcı null karakteri saymak yerine dönüştürülmüş dizenin uzunluğunu döndürür. Dönüş değeri değerinden büyük veya buna eşitse countiçeriği strDest tahmin edilemez. Bir hatada, her işlev ayarlar errno ve döndürür INT_MAX. Geçersiz bir karakter için olarak errno ayarlanır EILSEQ.

Açıklamalar

işlevi tarafından strxfrm işaret edilen dizeyi strSource içinde strDestdepolanan yeni bir harmanlanmış forma dönüştürür. Null karakter de dahil olmak üzere en fazla count karakter dönüştürülür ve sonuçta elde edilen dizeye yerleştirilir. Dönüştürme, yerel ayarın LC_COLLATE kategori ayarı kullanılarak yapılır. hakkında LC_COLLATEdaha fazla bilgi için bkz setlocale. . strxfrm yerel ayara bağımlı davranışı için geçerli yerel ayarı kullanır; _strxfrm_l , geçerli yerel ayar yerine geçirilen yerel ayarı kullanması dışında aynıdır. Daha fazla bilgi için bkz . Yerel Ayar.

Dönüştürmeden sonra, iki dönüştürülmüş dize ile çağrısı strcmp , özgün iki dizeye strcoll uygulanan bir çağrının sonuçlarıyla aynı sonuçları verir. ve stricollile strcoll olduğu gibi, strxfrm çok baytlı karakter dizelerini uygun şekilde otomatik olarak işler.

wcsxfrm , öğesinin strxfrmgeniş karakterli bir sürümüdür; dize bağımsız değişkenleri wcsxfrm geniş karakter işaretçileridir. için wcsxfrm, dize dönüşümünden sonra, iki dönüştürülmüş dize ile çağrısı, wcscmp özgün iki dizeye wcscoll uygulanan bir çağrının sonuçlarıyla aynı sonuçları verir. wcsxfrm ve strxfrm aksi takdirde aynı şekilde davran. wcsxfrm yerel ayara bağımlı davranışı için geçerli yerel ayarı kullanır; _wcsxfrm_l geçerli yerel ayar yerine geçirilen yerel ayarı kullanır.

Bu işlevler parametrelerini doğrular. Null işaretçiyse veya işaretçiyse NULL (sayı sıfır değilse) veya değerinden INT_MAXbüyüksecount, Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır.strDest strSource Yürütmenin devam etmesi için izin verilirse, bu işlevler olarak EINVAL ayarlanır errno ve döndürürINT_MAX.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Genel metin yordamı eşlemeleri

TCHAR.H yordamı _UNICODE ve _MBCS tanımlanmadı _MBCS tanımlanan _UNICODE tanımlanan
_tcsxfrm strxfrm strxfrm wcsxfrm
_tcsxfrm_l _strxfrm_l _strxfrm_l _wcsxfrm_l

"C" yerel ayarında, karakter kümesindeki karakterlerin sırası (ASCII karakter kümesi), karakterlerin sözcük düzeniyle aynıdır. Ancak, diğer yerel ayarlarda, karakter kümesindeki karakterlerin sırası sözcüksel karakter düzeninden farklı olabilir. Örneğin, bazı Avrupa yerel ayarlarda 'a' (değer 0x61) karakteri 'ä' karakterinden önce (değer 0xE4) karakter kümesindedir, ancak 'ä' karakteri 'a' karakterinden önce sözcüksel olarak kullanılır.

Karakter kümesinin ve sözcüksel karakter sırasının farklı olduğu yerel ayarlarda, özgün dizelerde ve ardından strcmp sonuçta elde edilen dizelerde kullanarak strxfrm geçerli yerel ayarın LC_COLLATE kategori ayarına göre bir sözcüksal dize karşılaştırması oluşturun. Bu nedenle, yukarıdaki yerel ayarda iki dizeyi sözcük temelli olarak karşılaştırmak için özgün dizelerde ve ardından strcmp sonuçta elde edilen dizelerde kullanınstrxfrm. Alternatif olarak, özgün dizeler yerine strcmp kullanabilirsinizstrcoll.

strxfrmtemelde ile LCMAP_SORTKEYetrafında LCMapString bir sarmalayıcıdır.

Aşağıdaki ifadenin değeri, kaynak dizenin dönüşümünün tutulması strxfrm için gereken dizinin boyutudur:

1 + strxfrm( NULL, string, 0 )

Yalnızca "C" yerel ayarında aşağıdaki strxfrm işlev çağrılarına eşdeğerdir:

strncpy( _string1, _string2, _count );
return( strlen( _string1 ) );

Gereksinimler

Yordam Gerekli başlık
strxfrm <string.h>
wcsxfrm <string.h> veya <wchar.h>
_strxfrm_l <string.h>
_wcsxfrm_l <string.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Ayrıca bkz.

Veri dönüştürme
localeconv
setlocale, _wsetlocale
Yerel ayar
Dize işleme
strcoll işlevleri
strcmp, wcscmp, _mbscmp
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l