头文件<locale.h>

头文件<locale.h>定义了特定地域的设置,如日期格式和货币符号。

<locale.h>中声明了两个函数和一个类型,并且定义了一些宏。

1、宏:

LC_ALL  设置下面的所有选项。

LC_COLLATE  影响 strcoll 和 strxfrm 函数。

LC_CTYPE  影响所有字符函数

LC_MONETARY  影响 localeconv 函数提供的货币信息。

LC_NUMERIC  影响 localeconv 函数提供的小数点格式化和信息。

LC_TIME  影响 strftime 函数。

2、结构:

struct lconv {
char *decimal_point;  //用于非货币值的小数点字符。
char *thousands_sep;  //用于非货币值的千位分隔符。
char *grouping;   //表示非货币量中每组数字大小的字符串。值为 0 意味着前一个值将应用于剩余的分组。
char *int_curr_symbol;  //国际货币符号使用的字符串。
char *currency_symbol;  //用于货币的本地符号。
char *mon_decimal_point;  //用于货币值的小数点字符。
char *mon_thousands_sep;  //用于货币值的千位分隔符。
char *mon_grouping;    //表示货币值中每组数字大小的字符串。
char *positive_sign;    //用于正货币值的字符。
char *negative_sign;    //用于负货币值的字符。
char int_frac_digits;    //国际货币值中小数点后要显示的位数。
char frac_digits;    //货币值中小数点后要显示的位数。
char p_cs_precedes;    //如果等于 1,则 currency_symbol 出现在正货币值之前。如果等于 0,则 currency_symbol 出现在正货币值之后。
char p_sep_by_space;    //如果等于 1,则 currency_symbol 和正货币值之间使用空格分隔。如果等于 0,则 currency_symbol 和正货币值之间不使用空格分隔。
char n_cs_precedes;    //如果等于 1,则 currency_symbol 出现在负货币值之前。如果等于 0,则 currency_symbol 出现在负货币值之后。
char n_sep_by_space;    //如果等于 1,则 currency_symbol 和负货币值之间使用空格分隔。如果等于 0,则 currency_symbol 和负货币值之间不使用空格分隔。
char p_sign_posn;    //表示正货币值中正号的位置。
char n_sign_posn;    //表示负货币值中负号的位置。
} ;

3、函数:

3.1函数setlocale被用来修改或查询程序当前的整个区域设置或者其中的一部分

char * setlocale(int category,const char *locale);

参数:category为LC_ALL,LC_COLLATE等。locale若是空字符串 "",则会使用系统环境变量的 locale 。若 locale 为零(NULL),则不会改变地域化配置,返回当前的地域值,若系统尚未实作则返回 false。

返回值:成功,返回相应设置的地域化信息。字符串可能分配在静态存储区。失败,返回NULL

3.2函数localeconv获得包含本地数字及货币信息格式的数组

struct lconv *localeconv(void);

功能:返回当前地域设置的信息

返回值:返回一个指向struct lconv 类型结构体的指针。

例:

#include <stdio.h>
#include <locale.h>

void main()
{
struct lconv *lv;
setlocale(LC_MONETARY,"en_GB");
lv=localeconv();
printf("Int_Curr_Symbol:%s\n",lv->int_curr_symbol);
printf("Currency_Symbol:%s\n",lv->currency_symbol);
printf("Point:%s\n",lv->decimal_point);
}

结果:

Int_Curr_Symbol:GBP
Currency_Symbol:▒
Point:.

转载于:https://www.cnblogs.com/Mr-Wenyan/p/7218155.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值