区域设置
区域设置指你可以用来自定义程序的国家/地区和语言设置。 一些与区域设置相关的类别包括日期和货币值的显示格式。 有关详细信息,请参阅区域设置类别。
在使用不带 _l
后缀的函数时,可使用 setlocale
函数来更改或查询当前的程序或线程区域设置信息的一部分或全部。 带有 _l
后缀的函数仅在其执行过程中使用传入的区域设置参数来获取区域设置信息。 若要创建用于带有 _l
后缀的函数的区域设置,请使用 _create_locale
。 若要释放此区域设置,请使用 _free_locale
。 若要获取当前区域设置,请使用 _get_current_locale
。
使用 _configthreadlocale
可控制是每个线程都有自己的区域设置,还是程序中的所有线程都共享同一区域设置。 有关详细信息,请参阅区域设置和代码页。
下表中的函数还有更安全的版本,由 _s
(“secure”)后缀指示。 有关详细信息,请参阅 CRT 中的安全功能。
依赖区域设置的例程
例程 | 使用 | setlocale 类别设置依赖项 |
---|---|---|
将字符转换为浮点值 | LC_NUMERIC |
|
将字符转换为整数值 | LC_NUMERIC |
|
将字符转换为 64 位整数值 | LC_NUMERIC |
|
将字符转换为长值 | LC_NUMERIC |
|
将字符转换为长双精度值 | LC_NUMERIC |
|
is , isw 例程 |
针对特定条件测试给定整数。 | LC_CTYPE |
%> | 测试前导字节 | LC_CTYPE |
localeconv |
读取合适的值来格式化数字量 | LC_MONETARY, LC_NUMERIC |
MB_CUR_MAX |
当前区域设置中任何多字节字符的最大长度(字节数)(STDLIB.H 中定义的宏) |
LC_CTYPE |
.'. . | 复制一个多字节字符 | LC_CTYPE |
.- . | 验证并返回多字节字符中的字节数 | LC_CTYPE |
对于多字节字符串:验证字符串中的每个字符;返回字符串的长度 | LC_CTYPE |
|
.'. . | 将多字节字符序列转换为对应的宽字符序列 | LC_CTYPE |
%> | 将多字节字符转换为对应的宽字符 | LC_CTYPE |
printf 函数 |
写入格式化的输出 | LC_NUMERIC (确定基数字符输出) |
scanf 函数 |
读取格式化的输入 | LC_NUMERIC (确定基数字符标识) |
%> | 选择程序的区域设置 | 不适用 |
比较两个字符串的字符 | LC_COLLATE |
|
比较两个字符串(不考虑大小写) | LC_CTYPE |
|
比较两个字符串的字符(不区分大小写) | LC_COLLATE |
|
比较两个字符串的第一个 n 字符 |
LC_COLLATE |
|
比较两个字符串的字符(不考虑大小写)。 | LC_CTYPE |
|
比较两个字符串的第一个 n 字符(不区分大小写) |
LC_COLLATE |
|
根据提供的 format 参数设置日期和时间值的格式 |
LC_TIME |
|
将给定字符串中的每个大写字母就地转换为小写字母 | LC_CTYPE |
|
将字符串转换为 double 值 |
LC_NUMERIC (确定基数字符标识) |
|
将字符串转换为 long 值 |
LC_NUMERIC (确定基数字符标识) |
|
将字符串转换为无符号长值 | LC_NUMERIC (确定基数字符标识) |
|
将字符串的每个小写字母就地转换为大写字母 | LC_CTYPE |
|
根据区域设置将字符串转换为排序格式 | LC_COLLATE |
|
将给定的字符转换为相应的小写字母 | LC_CTYPE |
|
将给定的字符转换为相应的大写字母 | LC_CTYPE |
|
.'. . | 将宽字符序列转换为相应的多字节字符序列 | LC_CTYPE |
.'. . | 将宽字符转换为相应的多字节字符 | LC_CTYPE |