共用方式為


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除了使用地區設定來取代目前的地區設定都與之相同。 如需詳細資訊,請參閱地區設定

在轉換之後,呼叫具有兩個已轉換字串yield結果的strcmp的方式和呼叫具有套用至兩個原始字串的strcoll 的方法相同。 與 strcoll 和 stricoll, strxfrm 會自動處理多位元組字元字串。

wcsxfrm 是 strxfrm 的寬字元版本,wcsxfrm 的字串引數是寬字元指標。 對於wcsxfrm,在字串轉換後,呼叫具有兩個已轉換字串yield結果的wcscmp的方式和呼叫具有套用至兩個原始字串的wcscoll的方法相同。 wcsxfrm 和 strxfrm 其餘行為相同。 wcsxfrm 為其地區設定相關行為使用目前的地區設定; _wcsxfrm_l 使用地區設定來取代目前的地區設定。

這些函式會驗證它們的參數。 如果 strSource 為 null 指標,或 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 字元集) 的字典會相同。 然而,在其他地區設定中,字元順序字元集可能與傳統詞的已纂順序不同。 例如在某些歐洲地區,在字元集中字碼頁字元「a」(值 0x61) 在「ä」(值 0xE4) 之前,但字典中字元「ä 」在字元「a」之前。

在字元集和字典會不同地區設定,在原始字串中使用 strxfrm 在結果字串之 strcmp 屬性的字串字典會根據目前地區設定的 LC_COLLATE 分類設定。 因此,動詞命令一般地比較兩個字串在上述地區設定,在原始字串中使用 strxfrm ,然後在結果字串的 strcmp 。 或者,您可以使用 strcoll 而不是原始字串的 strcmp 。

strxfrm 基本上是包裝函式在 LCMapString 周圍以及 LCMAP_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