C 標準函式庫 - <locale.h>


簡介

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

庫宏

下面列出了頭檔locale.h 中定義的宏,這些宏將在下列的兩個函數中使用:

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

以下是各字段的描述:

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

下面的值用於p_sign_posnn_sign_posn:

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