区域设置
区域设置 "是指您可以使用自定义程序的国家/地区和语言设置。 一些与区域设置相关的类别包括日期和货币值的显示格式。 有关更多信息,请参见区域设置类别。
当使用函数,而无需 _l 后缀时,请使用 setlocale 功能更改或查询部分或全部当前程序或线程区域设置信息。 与 _l 后缀的功能将使用仅在该特定功能的执行过程中传递的。这些区域设置信息区域设置参数。 用与 _l 后缀的函数创建一个区域设置用于,请使用 _create_locale。 若要释放该区域设置,请使用 _free_locale。 获取当前区域设置,使用 _get_current_locale。
使用 _configthreadlocale 控件每个线程是否有其自己的区域设置,或者在程序中的所有线程共享同一区域设置。 有关更多信息,请参见 区域设置和代码页。
函数的更安全版本下表中可用,指示由 _s (“安全”) 后缀。 有关更多信息,请参见CRT中的安全功能。
与区域设置相关的实例
实例 |
用途 |
设置依赖项的setlocale 类别 |
---|---|---|
为浮点值的转换字符 |
LC_NUMERIC |
|
为整数值的转换字符 |
LC_NUMERIC |
|
对于 64 位整数值的转换字符 |
LC_NUMERIC |
|
对于长的值将字符 |
LC_NUMERIC |
|
对于双长的值的转换字符 |
LC_NUMERIC |
|
测试特定条件的特定整数。 |
LC_CTYPE |
|
测试前导字节 |
LC_CTYPE |
|
读取格式的数字的数目适当的值 |
LC_MONETARY, LC_NUMERIC |
|
最大字节长度任何多字节字符在当前区域设置 (在 STDLIB.H) 定义的宏 |
LC_CTYPE |
|
复制一个多字节字符 |
LC_CTYPE |
|
验证并返回字节数在多字节字符的 |
LC_CTYPE |
|
strlen, strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l |
为多字节字符字符串:验证在字符串中的每个字符;返回字符串的长度 |
LC_CTYPE |
转换多字节字符序列转换为宽字符对应的顺序 |
LC_CTYPE |
|
转换多字节字符转换为相应的宽字符 |
LC_CTYPE |
|
printf 功能 |
编写格式化输出 |
LC_NUMERIC (确定基数字符输出) |
scanf 功能 |
读取的格式化输入 |
LC_NUMERIC (确定基数字体标识) |
为程序选择区域设置 |
不适用 |
|
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 |
根据所提供的 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 |
将字符串转换为 double 值 |
LC_NUMERIC (确定基数字体标识) |
|
将字符串转换为 long值 |
LC_NUMERIC (确定基数字体标识) |
|
将字符串转换为无符号 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 |
转换字符串转换为排列的基于窗体区域设置 |
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 |
将宽字符序列分成多字节字符对应的顺序 |
LC_CTYPE |
|
宽字符转换为相应的多字节字符 |
LC_CTYPE |