地區設定

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

使用 函 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
isisw 常式 測試特定條件的指定整數。 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 執行階段常式