C 標準庫 – <locale.h>

C 標準庫 - <locale.h>

簡介

locale.h 標頭檔案定義了特定地域的設定,比如日期格式和貨幣符號。接下來我們將介紹一些巨集,以及一個重要的結構 struct lconv 和兩個重要的函式。

庫巨集

下面列出了標頭檔案 locale.h 中定義的巨集,這些巨集將在下列的兩個函式中使用:

序號巨集 & 描述
1 LC_ALL
設定下面的所有選項。
2 LC_COLLATE
影響 strcoll 和 strxfrm 函式。
3 LC_CTYPE
影響所有字元函式。
4 LC_MONETARY
影響 localeconv 函式提供的貨幣資訊。
5 LC_NUMERIC
影響 localeconv 函式提供的小數點格式化和資訊。
6 LC_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

以下是各欄位的描述:

序號欄位 & 描述
1 decimal_point
用於非貨幣值的小數點字元。
2 thousands_sep
用於非貨幣值的千位分隔符。
3 grouping
一個表示非貨幣量中每組數字大小的字串。每個字元代表一個整數值,每個整數指定當前組的位數。值為 0 意味著前一個值將應用於剩餘的分組。
4 int_curr_symbol
國際貨幣符號使用的字串。前三個字元是由 ISO 4217:1987 指定的,第四個字元用於分隔貨幣符號和貨幣量。
5 currency_symbol
用於貨幣的本地符號。
6 mon_decimal_point
用於貨幣值的小數點字元。
7 mon_thousands_sep
用於貨幣值的千位分隔符。
8 mon_grouping
一個表示貨幣值中每組數字大小的字串。每個字元代表一個整數值,每個整數指定當前組的位數。值為 0 意味著前一個值將應用於剩餘的分組。
9 positive_sign
用於正貨幣值的字元。
10 negative_sign
用於負貨幣值的字元。
11 int_frac_digits
國際貨幣值中小數點後要顯示的位數。
12 frac_digits
貨幣值中小數點後要顯示的位數。
13 p_cs_precedes
如果等於 1,則 currency_symbol 出現在正貨幣值之前。如果等於 0,則 currency_symbol 出現在正貨幣值之後。
14 p_sep_by_space
如果等於 1,則 currency_symbol 和正貨幣值之間使用空格分隔。如果等於 0,則 currency_symbol 和正貨幣值之間不使用空格分隔。
15 n_cs_precedes
如果等於 1,則 currency_symbol 出現在負貨幣值之前。如果等於 0,則 currency_symbol 出現在負貨幣值之後。
16 n_sep_by_space
如果等於 1,則 currency_symbol 和負貨幣值之間使用空格分隔。如果等於 0,則 currency_symbol 和負貨幣值之間不使用空格分隔。
17 p_sign_posn
表示正貨幣值中正號的位置。
18 n_sign_posn
表示負貨幣值中負號的位置。

下面的值用於 p_sign_posnn_sign_posn:

描述
0 封裝值和 currency_symbol 的括號。
1 放置在值和 currency_symbol 之前的符號。
2 放置在值和 currency_symbol 之後的符號。
3 緊挨著放置在值和 currency_symbol 之前的符號。
4 緊挨著放置在值和 currency_symbol 之後的符號。