lconv
来自 cppreference.com
定义于头文件 <locale.h> |
||
struct lconv; |
||
结构体 lconv
包含 C 区域设置定义的数值和货币格式规则。可以使用 localeconv 获取该结构体对象。lconv
的成员是 char 类型的值,以及 char* 类型的值。除了 decimal_point
之外的每个 char* 成员都可能指向一个空字符(即,指向一个空的 C 字符串)。char 类型的成员都是非负数,如果当前 C 区域设置中没有提供相应的值,则任何成员都可能是 CHAR_MAX。
内容 |
[编辑] 成员对象
[编辑] 非货币数值格式参数
char* decimal_point |
用作小数点的字符 (公共成员对象) |
char* thousands_sep |
用于分隔小数点前的数字组的字符 (公共成员对象) |
char* grouping |
一个字符串,其元素指示数字组的大小 (公共成员对象) |
[编辑] 货币数值格式参数
char* mon_decimal_point |
用作小数点的字符 (公共成员对象) |
char* mon_thousands_sep |
用于分隔小数点前的数字组的字符 (公共成员对象) |
char* mon_grouping |
一个字符串,其元素指示数字组的大小 (公共成员对象) |
char* positive_sign |
用于指示非负货币数量的字符串 (公共成员对象) |
char* negative_sign |
用于指示负货币数量的字符串 (公共成员对象) |
[编辑] 本地货币数值格式参数
char* currency_symbol |
当前 C 区域设置中使用的货币符号 (公共成员对象) |
char frac_digits |
货币数量中显示的小数点后数字的位数 (公共成员对象) |
char p_cs_precedes |
1 如果 currency_symbol 放在非负值之前,则 0 如果放在之后(公共成员对象) |
char n_cs_precedes |
1 如果 currency_symbol 放在负值之前,则 0 如果放在之后(公共成员对象) |
char p_sep_by_space |
指示 currency_symbol 、positive_sign 和非负货币值的分隔(公共成员对象) |
char n_sep_by_space |
指示 currency_symbol 、negative_sign 和负货币值的分隔(公共成员对象) |
char p_sign_posn |
指示 positive_sign 在非负货币值中的位置(公共成员对象) |
char n_sign_posn |
指示 negative_sign 在负货币值中的位置(公共成员对象) |
[编辑] 国际货币数值格式参数
char* int_curr_symbol |
当前 C 区域设置中用作国际货币名称的字符串 (公共成员对象) |
char int_frac_digits |
国际货币数量中显示的小数点后数字的位数 (公共成员对象) |
char int_p_cs_precedes (C99) |
1 如果 int_curr_symbol 放在非负国际货币值之前,则 0 如果放在之后(公共成员对象) |
char int_n_cs_precedes (C99) |
1 如果 int_curr_symbol 放在负国际货币值之前,则 0 如果放在之后(公共成员对象) |
char int_p_sep_by_space (C99) |
指示 int_curr_symbol 、positive_sign 和非负国际货币值的分隔(公共成员对象) |
char int_n_sep_by_space (C99) |
指示 int_curr_symbol 、negative_sign 和负国际货币值的分隔(公共成员对象) |
char int_p_sign_posn (C99) |
指示 positive_sign 在非负国际货币值中的位置(公共成员对象) |
char int_n_sign_posn (C99) |
指示 negative_sign 在负国际货币值中的位置(公共成员对象) |
grouping
和 mon_grouping
指向的 C 字符串中的字符将根据其数值进行解释。遇到终止的 '\0' 时,将假定最后看到的值对剩余数字重复。如果遇到 CHAR_MAX,则不再对数字进行分组。典型的三位一组的分组是 "\003"。
p_sep_by_space
、n_sep_by_space
、int_p_sep_by_space
、int_n_sep_by_space
的值将按如下方式解释
0 | 货币符号和值之间没有空格分隔 |
1 | 符号与货币符号粘连,值用空格分隔 |
2 | 符号与值粘连。货币符号用空格分隔 |
p_sign_posn
、n_sign_posn
、int_p_sign_posn
、int_n_sign_posn
的值将按如下方式解释
0 | 值和货币符号周围使用括号表示符号 |
1 | 符号在值和货币符号之前 |
2 | 符号在值和货币符号之后 |
3 | 符号在货币符号之前 |
4 | 符号在货币符号之后 |
[编辑] 示例
运行此代码
#include <locale.h> #include <stdio.h> int main(void) { setlocale(LC_ALL, "ja_JP.UTF-8"); struct lconv *lc = localeconv(); printf("Japanese currency symbol: %s(%s)\n", lc->currency_symbol, lc->int_curr_symbol); }
可能的输出
Japanese currency symbol: ¥(JPY )
[编辑] 参考文献
- C23 标准 (ISO/IEC 9899:2024)
- 7.11/2 本地化 <locale.h> (p: TBD)
- C17 标准 (ISO/IEC 9899:2018)
- 7.11/2 本地化 <locale.h> (p: TBD)
- C11 标准 (ISO/IEC 9899:2011)
- 7.11/2 本地化 <locale.h> (p: 223)
- C99 标准 (ISO/IEC 9899:1999)
- 7.11/2 本地化 <locale.h> (p: 204)
- C89/C90 标准 (ISO/IEC 9899:1990)
- 4.4 本地化 <locale.h>
[编辑] 另请参阅
查询当前区域设置的数值和货币格式详细信息 (函数) | |
C++ 文档 针对 lconv
|