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

Guida di base al linguaggio C

C 语言流程控制

Funzioni del linguaggio C

Array del linguaggio C

Puntatori del linguaggio C

Stringhe del linguaggio C

C 语言结构体

C 语言文件

C 其他

C 语言参考手册

Libreria standard <locale.h> C

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

库宏

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

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

库函数

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

序号函数 & 描述
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;
} lconv

以下是各字段的描述:

序号字段 & 描述
1decimal_point
用于非货币值的小数点字符。
2thousands_sep
Il separatore di migliaia utilizzato per i valori non monetari.
3grouping
Una stringa che rappresenta la dimensione di ogni gruppo di numeri nei valori non monetari. Ogni carattere rappresenta un valore intero, ognuno dei quali specifica il numero di cifre per il gruppo corrente. Un valore di 0 significa che il valore precedente viene applicato ai gruppi rimanenti.
4int_curr_symbol
La stringa utilizzata per i simboli monetari internazionali. I primi tre caratteri sono specificati da ISO 4217:1987, e il quarto carattere viene utilizzato per separare il simbolo monetario dalla quantità monetaria.
5currency_symbol
Il simbolo locale utilizzato per le valute.
6mon_decimal_point
Il carattere utilizzato per il punto decimale nei valori monetari.
7mon_thousands_sep
Il separatore di migliaia utilizzato per i valori monetari.
8mon_grouping
Una stringa che rappresenta la dimensione di ogni gruppo di numeri nei valori monetari. Ogni carattere rappresenta un valore intero, ognuno dei quali specifica il numero di cifre per il gruppo corrente. Un valore di 0 significa che il valore precedente viene applicato ai gruppi rimanenti.
9positive_sign
Il carattere utilizzato per i valori monetari positivi.
10negative_sign
Il carattere utilizzato per i valori monetari negativi.
11int_frac_digits
Il numero di cifre decimali da visualizzare dopo il punto nei valori monetari internazionali.
12frac_digits
Il numero di cifre decimali da visualizzare dopo il punto nei valori monetari.
13p_cs_precedes
Se uguale a 1, il currency_symbol appare prima del valore monetario positivo. Se uguale a 0, il currency_symbol appare dopo il valore monetario positivo.
14p_sep_by_space
Se uguale a 1, il currency_symbol è separato dal valore monetario positivo da uno spazio. Se uguale a 0, il currency_symbol e il valore monetario positivo non sono separati da uno spazio.
15n_cs_precedes
Se uguale a 1, il currency_symbol appare prima del valore monetario negativo. Se uguale a 0, il currency_symbol appare dopo il valore monetario negativo.
16n_sep_by_space
Se uguale a 1, il currency_symbol è separato dal valore monetario negativo da uno spazio. Se uguale a 0, il currency_symbol e il valore monetario negativo non sono separati da uno spazio.
17p_sign_posn
Rappresenta la posizione del segno positivo nei valori monetari positivi.
18n_sign_posn
rappresentare la posizione del segno negativo nei valori monetari negativi.

I seguenti valori sono usati per p_sign_posn e n_sign_posn:

ValoreDescrizione
0Le parentesi di value e currency_symbol.
1Simbolo posizionato accanto al valore e al currency_symbol.
2Simbolo posizionato accanto al valore e al currency_symbol.
3Simbolo posizionato accanto al valore e al currency_symbol.
4Simbolo posizionato accanto al valore e al currency_symbol.