lconv
|
定义于头文件
<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> (页码: 待定)
- C17 标准 (ISO/IEC 9899:2018):
-
- 7.11/2 本地化 <locale.h> (页: TBD)
- C11 标准 (ISO/IEC 9899:2011):
-
- 7.11/2 本地化 <locale.h> (页码: 223)
- C99标准(ISO/IEC 9899:1999):
-
- 7.11/2 本地化 <locale.h> (页码:204)
- C89/C90 标准 (ISO/IEC 9899:1990):
-
- 4.4 本地化 <locale.h>
参阅
|
查询当前区域设置的数值和货币格式化详细信息
(函数) |
|
|
C++ 文档
关于
lconv
|
|