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 strDest
yerleş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 count
iç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 strDest
depolanan 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_COLLATE
daha 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 stricoll
ile strcoll
olduğu gibi, strxfrm
çok baytlı karakter dizelerini uygun şekilde otomatik olarak işler.
wcsxfrm
, öğesinin strxfrm
geniş 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_MAX
bü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
.
strxfrm
temelde ile LCMAP_SORTKEY
etrafı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