locale.h 頭文件定義了特定地域的設(shè)置,比如日期格式和貨幣符號。接下來我們將介紹一些宏,以及一個重要的結(jié)構(gòu) struct lconv 和兩個重要的函數(shù)。
下面列出了頭文件 locale.h 中定義的宏,這些宏將在下列的兩個函數(shù)中使用:
序號 | 宏 & 描述 |
---|---|
1 | LC_ALL 設(shè)置下面的所有選項(xiàng)。 |
2 | LC_COLLATE 影響 strcoll 和 strxfrm 函數(shù)。 |
3 | LC_CTYPE 影響所有字符函數(shù)。 |
4 | LC_MONETARY 影響 localeconv 函數(shù)提供的貨幣信息。 |
5 | LC_NUMERIC 影響 localeconv 函數(shù)提供的小數(shù)點(diǎn)格式化和信息。 |
6 | LC_TIME 影響 strftime 函數(shù)。 |
下面列出了頭文件 locale.h 中定義的函數(shù):
序號 | 函數(shù) & 描述 |
---|---|
1 | char setlocale(int category, const char locale) 設(shè)置或讀取地域化信息。 |
2 | struct lconv *localeconv(void) 設(shè)置或讀取地域化信息。 |
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 用于非貨幣值的小數(shù)點(diǎn)字符。 |
2 | thousands_sep 用于非貨幣值的千位分隔符。 |
3 | grouping 一個表示非貨幣量中每組數(shù)字大小的字符串。每個字符代表一個整數(shù)值,每個整數(shù)指定當(dāng)前組的位數(shù)。值為 0 意味著前一個值將應(yīng)用于剩余的分組。 |
4 | int_curr_symbol 國際貨幣符號使用的字符串。前三個字符是由 ISO 4217:1987 指定的,第四個字符用于分隔貨幣符號和貨幣量。 |
5 | currency_symbol 用于貨幣的本地符號。 |
6 | mon_decimal_point 用于貨幣值的小數(shù)點(diǎn)字符。 |
7 | mon_thousands_sep 用于貨幣值的千位分隔符。 |
8 | mon_grouping 一個表示貨幣值中每組數(shù)字大小的字符串。每個字符代表一個整數(shù)值,每個整數(shù)指定當(dāng)前組的位數(shù)。值為 0 意味著前一個值將應(yīng)用于剩余的分組。 |
9 | positive_sign 用于正貨幣值的字符。 |
10 | negative_sign 用于負(fù)貨幣值的字符。 |
11 | int_frac_digits 國際貨幣值中小數(shù)點(diǎn)后要顯示的位數(shù)。 |
12 | frac_digits 貨幣值中小數(shù)點(diǎn)后要顯示的位數(shù)。 |
13 | p_cs_precedes 如果等于 1,則 currency_symbol 出現(xiàn)在正貨幣值之前。如果等于 0,則 currency_symbol 出現(xiàn)在正貨幣值之后。 |
14 | p_sep_by_space 如果等于 1,則 currency_symbol 和正貨幣值之間使用空格分隔。如果等于 0,則 currency_symbol 和正貨幣值之間不使用空格分隔。 |
15 | n_cs_precedes 如果等于 1,則 currency_symbol 出現(xiàn)在負(fù)貨幣值之前。如果等于 0,則 currency_symbol 出現(xiàn)在負(fù)貨幣值之后。 |
16 | n_sep_by_space 如果等于 1,則 currency_symbol 和負(fù)貨幣值之間使用空格分隔。如果等于 0,則 currency_symbol 和負(fù)貨幣值之間不使用空格分隔。 |
17 | p_sign_posn 表示正貨幣值中正號的位置。 |
18 | n_sign_posn 表示負(fù)貨幣值中負(fù)號的位置。 |
下面的值用于 p_sign_posn 和 n_sign_posn:
值 | 描述 |
---|---|
0 | 封裝值和 currency_symbol 的括號。 |
1 | 放置在值和 currency_symbol 之前的符號。 |
2 | 放置在值和 currency_symbol 之后的符號。 |
3 | 緊挨著放置在值和 currency_symbol 之前的符號。 |
4 | 緊挨著放置在值和 currency_symbol 之后的符號。 |