命名空间
变体
操作

lconv

出自 cppreference.cn
< c‎ | locale
定义于头文件 <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_symbolpositive_sign 和非负货币值之间的分隔
(公共成员对象)
char n_sep_by_space
指示 currency_symbolnegative_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_symbolpositive_sign 和非负国际货币值之间的分隔
(公共成员对象)
char int_n_sep_by_space
(C99)
指示 int_curr_symbolnegative_sign 和负国际货币值之间的分隔
(公共成员对象)
char int_p_sign_posn
(C99)
指示 positive_sign 在非负国际货币值中的位置
(公共成员对象)
char int_n_sign_posn
(C99)
指示 negative_sign 在负国际货币值中的位置
(公共成员对象)

groupingmon_grouping 指向的 C 字符串的字符根据其数值解释。当遇到终止符 '\0' 时,假定看到的最后一个值对于剩余的数字重复。如果遇到 CHAR_MAX,则不再对数字进行分组。典型的每次三个数字的分组是 "\003"

p_sep_by_spacen_sep_by_spaceint_p_sep_by_spaceint_n_sep_by_space 的值解释如下

0 货币符号和值之间没有空格分隔
1 符号紧贴货币符号,值用空格分隔
2 符号紧贴值。货币符号用空格分隔

p_sign_posnn_sign_posnint_p_sign_posnint_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: 待定)
  • C17 标准 (ISO/IEC 9899:2018)
  • 7.11/2 本地化 <locale.h> (p: 待定)
  • 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