<locale.h>提供的函数用于控制c标准库中对于不同的地区行为不一样的部分。(地区通常是国家或者某种特定语言的地理区域)
在标准库里,依赖地区的部分通常包括以下几项:
数字量的格式
货币的格式
字符集
时间日期的格式
它设置了以下几个宏。
- LC_COLLATE:影响字符串比较函数
strcoll()
和strxfrm()
。 - LC_CTYPE:影响字符处理函数的行为。
- LC_MONETARY:影响货币格式。
- LC_NUMERIC:影响
printf()
的数字格式。 - LC_TIME:影响时间格式
strftime()
和wcsftime()
。 - LC_ALL:将以上所有类别设置为给定的语言环境。
#include <locale.h>
#include <stdio.h>int main()
{struct lconv * lc;setlocale(LC_MONETARY, "it_IT");lc = localeconv();//currency_symbol:货币符号printf("Local Currency Symbol: %s\n", lc->currency_symbol);printf("International Currency Symbol: %s\n", lc->int_curr_symbol);printf("\n");setlocale(LC_MONETARY, "en_US");lc = localeconv();printf("Local Currency Symbol: %s\n", lc->currency_symbol);printf("International Currency Symbol: %s\n", lc->int_curr_symbol);printf("\n");setlocale(LC_MONETARY, "zh_CN");lc = localeconv();printf("Local Currency Symbol: %s\n", lc->currency_symbol);printf("International Currency Symbol: %s\n", lc->int_curr_symbol);printf("Decimal Point = %s\n", lc->decimal_point);return 0;
}