struct lconv类型
描述:
该类型是结构类型,包含与数值格式有关的结构成员。结构成员可分为char *类型结构成员和char类型结构成员。char *类型结构成员都是指向字符串的指针,除decimal_point外,都可以指向"",表示该值在当前语言环境中不可用或者长度为0。除grouping和mon_grouping外,字符串应以初始移位状态开始和结束。char类型结构成员是非负数;如果是CHAR_MAX,表示该值在当前语言环境中不可用。
struct lconv类型至少包含以下结构成员(结构成员的顺序ISO/IEC 9899:2018标准未作明确要求。)。"C"语言环境中,结构成员具有下表中的值。
结构成员 | "C"环境值 | 描述 |
char *decimal_point | "." | 用于格式化非货币数值的小数点字符。 |
char *thousands_sep | "" | 格式化的非货币数值中用于分隔小数点前数字组的字符。 |
char *grouping | "" | 一个字符串,其元素表示格式化非货币数值中的每组数的位数。第一个元素表示最右侧一组数的位数;第二个元素表示次右侧一组数的位数;以此类推。如果元素值为0,则反复使用前面的元素对剩下的位进行分组。如果元素值为CHAR_MAX,则表示不再分组。假设thousands_sep指向" ",以数12345678为例,不同grouping对应的数值表示方式如下所示:
grouping 数值表示形式 "\3" 12 345 678 "\2\3" 123 456 78 |
char *mon_decimal_point | "" | 用于格式化货币数值的小数点字符。 |
char *mon_thousands_sep | "" | 格式化的货币数值中用于分隔小数点前数字组的字符。 |
char *mon_grouping | "" | 一个字符串,其元素表示格式化货币数值中的每组数的位数。第一个元素表示最右侧一组数的位数;第二个元素表示次右侧一组数的位数;以此类推。如果元素值为0,则反复使用前面的元素对剩下的位进行分组。如果元素值为CHAR_MAX,则表示不再分组。假设mon_thousands_sep指向" ",以数12345678为例,不同mon_grouping对应的数值表示方式如下所示:
mon_grouping 数值表示形式 "\3" 12 345 678 "\2\3" 123 456 78 |
char *positive_sign | "" | 用于表示非负格式化货币值的字符串。 |
char *negative_sign | "" | 用于表示负格式化货币值的字符串。 |
char *currency_symbol | "" | 当前语言环境的本地货币符号,例如:¥、€、£、$等。 |
char frac_digits | CHAR_MAX | 以本地格式化的货币量显示的小数位数(小数点后的小数位数)。 |
char p_cs_precedes | CHAR_MAX | 表示本地货币符号(currency_symbol)和非负本地格式化货币值的先后顺序,值可能是1或者0。如果值为1,货币符号在货币值之前,例如:¥100;如果值为0,货币符号在货币值之后,例如:100¥。 |
char n_cs_precedes | CHAR_MAX | 表示本地货币符号(currency_symbol)和负本地格式化货币值的先后顺序,值可能是1或者0。如果值为1,货币符号在货币值之前,例如:¥-100;如果值为0,货币符号在货币值之后,例如:-100¥。 |
char p_sep_by_space | CHAR_MAX | 表示本地货币符号(currency_symbol)、非负符号和货币值的分隔方式,值可能为0、1或者2。如果值为0,表示不使用空格分隔货币符号和货币值,例如:¥100;如果值为1,在货币符号和非负符号相邻的情况下,使用空格将它们与货币值分隔,例如:¥+ 100;否则使用空格将货币符号和货币值分隔,例如:¥ 100;如果值为2,在货币符号和非负符号相邻的情况下,使用空格将其分隔,例如:¥ +100;否则使用空格将非负符号和货币值分隔,例如:+ 100¥。 |
char n_sep_by_space | CHAR_MAX | 表示本地货币符号(currency_symbol)、负号和货币值的分隔方式,值可能为0、1或者2。如果值为0,表示不使用空格分隔货币符号和货币值,例如:-100¥;如果值为1,在货币符号和负号相邻的情况下,使用空格将它们与货币值分隔,例如:¥- 100;否则使用空格将货币符号和货币值分隔,例如:-100 ¥;如果值为2,在货币符号和负号相邻的情况下,使用空格将其分隔,例如:¥ -100;否则使用空格将负号和货币值分隔,例如:- 100¥。 |
char p_sign_posn | CHAR_MAX | 表示非负货币值的符号(positive_sign)位置,值可能为0、1、2、3或者4。如果值为0,货币值和货币符号均放在括号中;如果值为1,非负符号在货币值和货币符号之前;如果值为2,非负符号在货币值和货币符号之后;如果值为3,货币符号紧接着非负符号之后;如果值为4,非负符号紧接着货币符号之后。 |
char n_sign_posn | CHAR_MAX | 表示负货币值的负号(negative_sign)位置,值可能为0、1、2、3或者4。如果值为0,货币值和货币符号均放在括号中;如果值为1,负号在货币值和货币符号之前;如果值为2,负号在货币值和货币符号之后;如果值为3,货币符号紧接着负号之后;如果值为4,负号紧接着货币符号之后。 |
char *int_curr_symbol | "" | 当前语言环境的国际货币符号。前三个字符包含符合ISO 4217标准规定的国际货币符号;第4个字符(即空字符前的那个字符,通常是空格符。)用于分隔国际货币符号和货币值,例如:"CNY "、"USD "、"GBP "、"EUR "。 |
char int_frac_digits | CHAR_MAX | 以国际格式化的货币量显示的小数位数(小数点后的小数位数)。 |
char int_p_cs_precedes | CHAR_MAX | 表示当前语言环境的国际货币符号(int_curr_symbol)和非负国际格式化货币值的先后顺序,值可能是1或者0。如果值为1,货币符号在货币值之前,例如:CNY100;如果值为0,货币符号在货币值之后,例如:100CNY。 |
char int_n_cs_precedes | CHAR_MAX | 表示当前语言环境的国际货币符号(int_curr_symbol)和负国际格式化货币值的先后顺序,值可能是1或者0。如果值为1,货币符号在货币值之前,例如:CNY-100;如果值为0,货币符号在货币值之后,例如:-100CNY。 |
char int_p_sep_by_space | CHAR_MAX | 表示当前语言环境的国际货币符号(int_curr_symbol)、非负符号和货币值的分隔方式,值可能为0、1或者2。如果值为0,表示不使用空格分隔货币符号和货币值,例如:CNY100;如果值为1,在货币符号和非负符号相邻的情况下,使用空格将它们与货币值分隔,例如:CNY+ 100;否则使用空格将货币符号和货币值分隔,例如:CNY 100;如果值为2,在货币符号和非负符号相邻的情况下,使用空格将其分隔,例如:CNY +100;否则使用空格将非负符号和货币值分隔,例如:+ 100CNY。 |
char int_n_sep_by_space | CHAR_MAX | 表示当前语言环境的国际货币符号(int_curr_symbol)、负号和货币值的分隔方式,值可能为0、1或者2。如果值为0,表示不使用空格分隔货币符号和货币值,例如:-100CNY;如果值为1,在货币符号和负号相邻的情况下,使用空格将它们与货币值分隔,例如:CNY- 100;否则使用空格将货币符号和货币值分隔,例如:-100 CNY;如果值为2,在货币符号和负号相邻的情况下,使用空格将其分隔,例如:CNY -100;否则使用空格将负号和货币值分隔,例如:- 100CNY。 |
char int_p_sign_posn | CHAR_MAX | 表示非负国际格式化货币值的符号(positive_sign)位置,值可能为0、1、2、3或者4。如果值为0,货币值和货币符号均放在括号中;如果值为1,非负符号在货币值和货币符号之前;如果值为2,非负符号在货币值和货币符号之后;如果值为3,货币符号紧接着非负符号之后;如果值为4,非负符号紧接着货币符号之后。 |
char int_n_sign_posn | CHAR_MAX | 表示负国际格式化货币值的符号(negative_sign)位置,值可能为0、1、2、3或者4。如果值为0,货币值和货币符号均放在括号中;如果值为1,负号在货币值和货币符号之前;如果值为2,负号在货币值和货币符号之后;如果值为3,货币符号紧接着负号之后;如果值为4,负号紧接着货币符号之后。 |
范例:
|
|
输出:
decimal_point: .
thousands_sep: ,
mon_decimal_point: .
mon_thousands_sep: ,
currency_symbol: $
int_curr_symbol: USD
注:使用Visual Studio编译。
相关内容:
setlocale | 改变或者查询语言环境的函数。 |
localeconv | 返回struct lconv类型指针的函数。 |