<locale.h> -- 函数
阅读:0       作者:严长生

localeconv() 返回区域设置中与数字和货币有关的信息

struct lconv* localeconv (void);

localeconv() 函数用来返回区域设置(地域设置、本地设置)中与数字和货币有关的信息。

区域设置是与某个地区(或者说某个国家)的语言和文化相关的一系列内容,包含日期格式、数字格式、货币格式(例如货币符号、国际货币代码)、字符处理(例如字符分类)、字符比较(字符排序)等多个方面,其中数字和货币信息还包含了很多细节,为了便于管理,C语言将这些细节信息组织成一个结构体,它的名字就是 struct lconv。也就是说,struct lconv 是一个包含了与数字和货币有关的区域设置信息的结构体。

localeconv() 返回的是指向 lconv 结构体变量(数据)的指针。

参数

返回值

返回指向 lconv 结构体变量(数据)的指针。

注意:借助该指针并不能修改 lconv 结构体的数据,只有再次调用 localeconv(),或者通过 setlocale() 设置与数字和货币有关的地域信息时,lconv 结构体的数据才会被修改。

实例

输出 struct lconv 的所有成员。
#include <stdio.h>
#include <locale.h>
#include <string.h>

int main ()
{
    setlocale (LC_ALL,"zh_CN");  //在Windows下请写作setlocale (LC_ALL,"zh-CN");
    struct lconv * lc;
    lc=localeconv();
    printf ("decimal_point: %sn",lc->decimal_point);
    printf ("thousands_sep: %sn",lc->thousands_sep);
    printf ("grouping: %sn",lc->grouping);
    printf ("int_curr_symbol: %sn",lc->int_curr_symbol);
    printf ("currency_symbol: %sn",lc->currency_symbol);
    printf ("mon_decimal_point: %sn",lc->mon_decimal_point);
    printf ("mon_thousands_sep: %sn",lc->mon_thousands_sep);
    printf ("mon_grouping: %sn",lc->mon_grouping);
    printf ("positive_sign: %sn",lc->positive_sign);
    printf ("negative_sign: %sn",lc->negative_sign);
    printf ("frac_digits: %dn",lc->frac_digits);
    printf ("p_cs_precedes: %dn",lc->p_cs_precedes);
    printf ("n_cs_precedes: %dn",lc->n_cs_precedes);
    printf ("p_sep_by_space: %dn",lc->p_sep_by_space);
    printf ("n_sep_by_space: %dn",lc->n_sep_by_space);
    printf ("p_sign_posn: %dn",lc->p_sign_posn);
    printf ("n_sign_posn: %dn",lc->n_sign_posn);
    printf ("int_frac_digits: %dn",lc->int_frac_digits);
    printf ("int_p_cs_precedes: %dn",lc->int_p_cs_precedes);
    printf ("int_n_cs_precedes: %dn",lc->int_n_cs_precedes);
    printf ("int_p_sep_by_space: %dn",lc->int_p_sep_by_space);
    printf ("int_n_sep_by_space: %dn",lc->int_n_sep_by_space);
    printf ("int_p_sign_posn: %dn",lc->int_p_sign_posn);
    printf ("int_n_sign_posn: %dn",lc->int_n_sign_posn);
   
    return 0;
}
运行结果:
decimal_point: .
thousands_sep: ,
grouping: 
int_curr_symbol: CNY
currency_symbol: ¥
mon_decimal_point: .
mon_thousands_sep: ,
mon_grouping: 
positive_sign:
negative_sign: -
frac_digits: 2
p_cs_precedes: 1
n_cs_precedes: 1
p_sep_by_space: 0
n_sep_by_space: 0
p_sign_posn: 1
n_sign_posn: 4
int_frac_digits: 2
int_p_cs_precedes: 1
int_n_cs_precedes: 1
int_p_sep_by_space: 0
int_n_sep_by_space: 0
int_p_sign_posn: 1
int_n_sign_posn: 4

注意,最后六个成员变量是 C99 标准新加入的,请确认编译器是否支持。