地區設定

「地區設定」指的是可用來自訂程式的國家/地區和語言設定。 有些地區設定相關分類包括日期和貨幣值的顯示格式。 如需詳細資訊,請參閱 地區設定類別。

使用 函 setlocale 式在不使用 _l 後綴的函式時,使用 函式來變更或查詢部分或所有目前的程式或線程地區設定資訊。 具有 _l 尾碼的函式只會使用傳入的地區設定參數,作為其在執行該特定函式期間的地區設定資訊。 若要建立地區設定以搭配後綴的 _l 函式使用,請使用 _create_locale。 若要釋放此地區設定,請使用 _free_locale。 若要取得目前的地區設定,請使用 _get_current_locale。

用來 _configthreadlocale 控制每個線程都有自己的地區設定,或程式中的所有線程共用相同的地區設定。 如需詳細資訊,請參閱 地區設定和代碼頁。

下表中有更安全版本的函式可供使用,以 _s ("secure") 尾碼表示。 如需詳細資訊,請參閱 CRT中的安全性功能。

地區設定相依例程

常式 使用 setlocale 分類設定相依性
atof、 、 _atof_l、 _wtof_wtof_l 將字元轉換為浮點值 LC_NUMERIC
atoi、 、 _atoi_l、 _wtoi_wtoi_l 將字元轉換為整數值 LC_NUMERIC
_atoi64、 、 _atoi64_l、 _wtoi64_wtoi64_l 將字元轉換為 64 位元整數值 LC_NUMERIC
atol、 、 _atol_l、 _wtol_wtol_l 將字元轉換為 long 值 LC_NUMERIC
_atodbl、、_atodbl_l_atoldbl、_atoldbl_l、、_atoflt、_atoflt_l 將字元轉換為 double-long 值 LC_NUMERIC
is, isw 常式 測試特定條件的指定整數。 LC_CTYPE
isleadbyte、_isleadbyte_l 前導位元組的測試 LC_CTYPE
localeconv 讀取用於格式化數值數量的適當值 LC_MONETARY, LC_NUMERIC
MB_CUR_MAX 目前地區設定中任何多位元組位元的最大長度 (在 中 STDLIB.H定義的巨集) LC_CTYPE
_mbccpy、 、 _mbccpy_l、_mbccpy_s_mbccpy_s_l 複製一個多位元組字元 LC_CTYPE
_mbclen、 、 mblen_mblen_l 驗證並傳回多位元組字元的位元組數目 LC_CTYPE
strlen、、wcslen_mbslen、_mbslen_l、、_mbstrlen、_mbstrlen_l 針對多位元組字元字串︰驗證字串中的每個字元;傳回字串長度 LC_CTYPE
mbstowcs、 、 _mbstowcs_l、mbstowcs_s_mbstowcs_s_l 將多位元組字元序列轉換為對應的寬字元序列 LC_CTYPE
mbtowc、_mbtowc_l 將多位元組字元轉換為對應的寬字元 LC_CTYPE
printf 函式 寫入格式化輸出 LC_NUMERIC (判斷基底字元輸出)
scanf 函式 讀取格式化輸入 LC_NUMERIC (判斷基底字元辨識)
setlocale、_wsetlocale 選取程式的地區設定 不適用
strcoll、、wcscoll_mbscoll、_strcoll_l、、_wcscoll_l、_mbscoll_l 比較兩個字串的字元 LC_COLLATE
_stricmp、、_wcsicmp_mbsicmp、_stricmp_l、、_wcsicmp_l、_mbsicmp_l 比較兩個字串,而不考慮大小寫 LC_CTYPE
_stricoll、、_wcsicoll_mbsicoll、_stricoll_l、、_wcsicoll_l、_mbsicoll_l 比較兩個字串的字元 (不區分大小寫) LC_COLLATE
_strncoll、、_wcsncoll_mbsncoll、_strncoll_l、、_wcsncoll_l、_mbsncoll_l 比較兩個字串的第一個 n 字元 LC_COLLATE
_strnicmp、、_wcsnicmp_mbsnicmp、_strnicmp_l、、_wcsnicmp_l、_mbsnicmp_l 比較兩個字串的字元,而不考慮大小寫。 LC_CTYPE
_strnicoll、、_wcsnicoll_mbsnicoll、_strnicoll_l、、_wcsnicoll_l、_mbsnicoll_l 比較兩個字串的第一個 n 字元 (不區分大小寫) LC_COLLATE
strftime、 、 wcsftime、 _strftime_l_wcsftime_l 根據提供的 format 引數,格式化日期和時間值 LC_TIME
_strlwr、_wcslwr、_mbslwr、_strlwr_l、_wcslwr_l、_mbslwr_l、_strlwr_s_strlwr_s_l_mbslwr_s、_mbslwr_s_l、、、 _wcslwr_s_wcslwr_s_l 就地將指定字串中的每個大寫字母轉換為小寫 LC_CTYPE
strtod、 、 _strtod_l、 wcstod_wcstod_l 將字元字串轉換為 double 值 LC_NUMERIC (判斷基底字元辨識)
strtol、 、 wcstol、 _strtol_l_wcstol_l 將字元字串轉換為 long 值 LC_NUMERIC (判斷基底字元辨識)
strtoul、 、 _strtoul_l、 wcstoul_wcstoul_l 將字元字串轉換為不帶正負號的 long 值 LC_NUMERIC (判斷基底字元辨識)
_strupr、_strupr_l、_mbsupr、_mbsupr_l、_wcsupr_l、_wcsupr、_strupr_s_strupr_s_l_mbsupr_s、_mbsupr_s_l、、、 _wcsupr_s_wcsupr_s_l 就地將字串中的每個小寫字母轉換為大寫 LC_CTYPE
strxfrm、 、 wcsxfrm、 _strxfrm_l_wcsxfrm_l 根據地區設定,將字串轉換為定序的形式 LC_COLLATE
tolower、_tolower、towlower、_tolower_l、_towlower_l、_mbctolower、_mbctolower_l、 _mbctoupper_mbctoupper_l 將指定字元轉換為對應的小寫字元 LC_CTYPE
toupper、_toupper、towupper、_toupper_l、_towupper_l、_mbctolower、_mbctolower_l、 _mbctoupper_mbctoupper_l 將指定字元轉換為對應的大寫字母 LC_CTYPE
wcstombs、 、 _wcstombs_l、wcstombs_s_wcstombs_s_l 將寬字元序列轉換為對應的多位元組字元序列 LC_CTYPE
wctomb、 、 _wctomb_l、wctomb_s_wctomb_s_l 將寬字元轉換為對應的多位元組字元 LC_CTYPE

注意

對於多位元組例程,多位元組代碼頁必須相當於使用 setlocale設定的地區設定。 _setmbcp,具有的 _MB_CP_LOCALE 自變數可讓多位元組代碼頁與 setlocale 代碼頁相同。

另請參閱

國際化
依類別排序的通用 C 執行階段常式