1、<locale.h>头文件
1.1、头文件的部分内容:
1.1.1、宏定义:
#define LC_ALL 0
#define LC_COLLATE 1
#define LC_CTYPE 2
#define LC_MONETARY 3
#define LC_NUMERIC 4
#define LC_TIME 5
#define LC_MIN LC_ALL
#define LC_MAX LC_TIME
1.1.2、声明类型:
#ifndef _LCONV_DEFINED
struct lconv {
char *decimal_point; //用来格式化非货币量的小数点字符。
char *thousands_sep; //用来对格式化的非货币量中小数点前面的数组进行分组的字符。
char *grouping; //一个字符串,它的元素说明了格式化的非货币量中每一组数字的数目。
char *int_curr_symbol; //适合当前区域设置的国际货币符号。前3个字符包含了符合ISO 4217:1987标准的字母国际货币符号。第四个字符(后面紧跟空字符)是国际货币符号与货币量之间的分隔符。
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; //当currency_symbol放在一个非负的格式化货币量的值的前面或者后面时,分别设为1或者0.
char p_sep_by_space; //currency_symbol与非负的格式化货币量的值用空格分开时为1,否则为0。
char n_cs_precedes; //currency_symbol放在一个负的格式化货币量的前面或者后面时,分别设为1或者0。
char n_sep_by_space; //currency_symbol与负的格式化货币量用空格分开时为1,否则为0。
char p_sign_posn; //它的值用来说明一个非负的格式化货币量中的positive_sign的位置。
char n_sign_posn; //它的值用来说明一个负的格式化货币量中negative_sign的位置。
};
#define _LCONV_DEFINED
#endif / _LCONV_DEFINED */
1.1.3、函数:
1.1.3.1、_CRTIMP char * __cdecl setlocale(int category, const char *locale);
函数setlocale根据参数category和locale选择适合程序的区域设置的各个类别。函数setlocale可能被用来修改和查询程序当前的整个区域设置或其中一部分。
当参数category是LC_ALL:对程序的整个区域设置进行命名。
当参数category是LC_COLLATE:影响函数strcoll和strxfrm的行为。
当参数category是LC_CTYPE:影响字符处理函数和多字节函数的行为。
当参数category是LC_MONETARY:影响函数localeconv函数返回的货币格式信息。
当参数category是LC_NUM