共用方式為


strxfrm、 wcsxfrm、 _strxfrm_l、 _wcsxfrm_l

轉換字串,根據地區設定特性的資訊。

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

參數

  • strDest
    目的字串。

  • strSource
    來源字串。

  • count
    最大字元長度,將放置在strDest*.*

  • locale
    若要使用地區設定。

傳回值

傳回已轉換的字串,不計算結束的 null 字元的長度。 如果傳回的值是大於或等於count、 內容的strDest變得無法預期。 發生錯誤,在每個函式會設定errno ,並傳回INT_MAX。 無效的字元,則請errno設定為 [ EILSEQ。

備註

strxfrm函數來轉換所指的字串strSource到新的自動分頁形式儲存在strDest。 不能超過count個字元,包括 null 字元,會轉換,並放入 [產生的字串。 轉換由使用地區設定的LC_COLLATE分類設定。 如需有關LC_COLLATE,請參閱 setlocale。 strxfrm使用目前的地區設定的地區設定相關的行為。 _strxfrm_l不同之處在於,它會使用傳遞中而不是目前的地區設定的地區設定,則是完全相同。 如需詳細資訊,請參閱 地區設定

在轉換時,呼叫後strcmp與兩個轉換後的字串會產生完全相同的呼叫的結果strcoll套用至原始的兩個字串。 如同strcoll和stricoll, strxfrm會自動處理適當的多位元組字元字串。

wcsxfrm寬字元版本的strxfrm。 字串引數的wcsxfrm是寬字元的指標。 對於wcsxfrm、 後續字串轉換的呼叫wcscmp與兩個轉換後的字串會產生完全相同的呼叫的結果wcscoll套用至原始的兩個字串。 wcsxfrm與strxfrm其他方式完全相同。 wcsxfrm使用目前的地區設定的地區設定相關的行為。 _wcsxfrm_l使用傳遞中而不是目前的地區設定的地區設定。

這些函式會驗證它們的參數。 如果strSource是空值的指標,或strDest是 NULL 指標 (除非計數是零),或者如果count大於INT_MAX,不正確的參數處理常式會叫用,如所述參數驗證 。 如果執行,則允許繼續執行,這些函式會設定errno到EINVAL ,並傳回INT_MAX。

泛用文字常式對應

TCHAR。H 常式

_UNICODE & 未定義的 _MBCS

定義的 _MBCS

定義 _unicode 之後

_tcsxfrm

strxfrm

strxfrm

wcsxfrm

_tcsxfrm_l

_strxfrm_l

_strxfrm_l

_wcsxfrm_l

"C"地區設定中,在中的字元順序的字集 (ASCII 字元集) 等同於 lexicographic 字元的順序。 不過,其他地區設定中的字元組中的字元順序可能不同於 lexicographic 的字元順序。 比方說,某些歐洲地區設定中的字元 'a' (值 0x61) 之前的字元 ' & # x00E4;'(值 0xE4) 中的字元集,但字元 'ä' 之前的字元 'a' 您。

在 [地區設定中的字集和 lexicographic 的字元順序不同,使用strxfrm對原始字串,然後strcmp上產生的字串,以產生某個 lexicographic 的字串比較會根據目前的地區設定LC_COLLATE分類設定。 因此,若要比較兩個字串,您在上述的地區設定中,請使用strxfrm的原始字串,然後在strcmp上產生的字串。 或者,您可以使用strcoll而不是strcmp對原來的字串。

strxfrm基本上就是包裝函式 LCMapStringLCMAP_SORTKEY

下列運算式的值會需要用來儲存陣列的大小strxfrm在來源字串的轉換:

1 + strxfrm( NULL, string, 0 )

"C"地區設定,在strxfrm相當於下列:

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

需求

常式

所需的標頭

strxfrm

<string.h>

wcsxfrm

<string.h> 或者 <wchar.h>

_strxfrm_l

<string.h>

_wcsxfrm_l

<string.h> 或者 <wchar.h>

其他的相容性資訊,請參閱相容性在簡介中。

.NET Framework 對等用法

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

請參閱

參考

資料轉換

localeconv

setlocale _wsetlocale

地區設定

字串操作 (CRT)

strcoll 函式

strcmp,wcscmp _mbscmp

strncmp、 wcsncmp、 _mbsncmp、 _mbsncmp_l