English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C 语言基础教程

C 语言流程控制

Funções do C

Arrays do C

Ponteiro do C

String do C

C 语言结构体

C 语言文件

C 其他

C 语言参考手册

Biblioteca padrão <locale.h> do C

locale.h 头文件定义了特定地域的设置,比如日期格式和货币符号。接下来我们将介绍一些宏,以及一个重要的结构 struct lconv 和两个重要的函数。

库宏

下面列出了头文件 locale.h 中定义的宏,这些宏将在下列的两个函数中使用:

Número宏 & 描述
1LC_ALL
设置下面的所有选项。
2LC_COLLATE
影响 strcoll 和 strxfrm 函数。
3LC_CTYPE
影响所有字符函数。
4LC_MONETARY
影响 localeconv 函数提供的货币信息。
5LC_NUMERIC
影响 localeconv 函数提供的小数点格式化和信息。
6LC_TIME
影响 strftime 函数。

库函数

下面列出了头文件 locale.h 中定义的函数:

Número函数 & 描述
1char *setlocale(int category, const char *locale)
设置或读取地域化信息。
2struct lconv *localeconv(void)
设置或读取地域化信息。

库结构

typedef struct {
   char *decimal_point;
   char *thousands_sep;
   char *grouping;    
   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;
   char p_sep_by_space;
   char n_cs_precedes;
   char n_sep_by_space;
   char p_sign_posn;
   char n_sign_posn;
}

A seguir está a descrição de cada campo:

NúmeroCampo & Descrição
1decimal_point
O caractere usado para o ponto decimal em valores não monetários.
2thousands_sep
O separador de milhares usado para valores não monetários.
3grouping
Uma string que representa o tamanho de每组 número em valores não monetários. Cada caractere representa um valor inteiro, cada inteiro especifica o número de dígitos do grupo atual. Um valor de 0 significa que o valor anterior será aplicado aos grupos restantes.
4int_curr_symbol
A string usada para o símbolo monetário internacional. Os três primeiros caracteres são especificados pelo ISO 4217:1987 Especificado, o quarto caractere é usado para separar o símbolo monetário e a quantidade monetária.
5currency_symbol
O símbolo local usado para a moeda.
6mon_decimal_point
O caractere usado para o ponto decimal em valores monetários.
7mon_thousands_sep
O separador de milhares usado para valores monetários.
8mon_grouping
Uma string que representa o tamanho de每组 número no valor monetário. Cada caractere representa um valor inteiro, cada inteiro especifica o número de dígitos do grupo atual. Um valor de 0 significa que o valor anterior será aplicado aos grupos restantes.
9positive_sign
O caractere usado para valores monetários positivos.
10negative_sign
O caractere usado para valores monetários negativos.
11int_frac_digits
O número de dígitos a ser exibido após o ponto decimal no valor monetário internacional.
12frac_digits
O número de dígitos a ser exibido após o ponto decimal no valor monetário.
13p_cs_precedes
Se for igual a 1então o currency_symbol aparece antes do valor monetário positivo. Se for igual a 0, o currency_symbol aparece após o valor monetário positivo.
14p_sep_by_space
Se for igual a 1então o currency_symbol e o valor monetário positivo são separados por espaço. Se for igual a 0, não há espaço entre o currency_symbol e o valor monetário positivo.
15n_cs_precedes
Se for igual a 1então o currency_symbol aparece antes do valor monetário negativo. Se for igual a 0, o currency_symbol aparece após o valor monetário negativo.
16n_sep_by_space
Se for igual a 1Se for igual a, então o currency_symbol e o valor monetário negativo são separados por espaço. Se for igual a 0, não há espaço entre o currency_symbol e o valor monetário negativo.
17p_sign_posn
representar a posição do sinal positivo em valores monetários positivos.
18n_sign_posn
representar a posição do sinal negativo em valores monetários negativos.

Os seguintes valores são usados para p_sign_posn e n_sign_posn:

ValorDescrição
0Colchetes de valor e currency_symbol.
1Símbolo colocado imediatamente antes do valor e o currency_symbol.
2Símbolo colocado imediatamente após o valor e o currency_symbol.
3Símbolo colocado imediatamente antes do valor e do currency_symbol.
4Símbolo colocado imediatamente após o valor e o currency_symbol.