C語言 標(biāo)準(zhǔn)庫 – <locale.h>

2023-01-11 16:30 更新

簡介

locale.h 頭文件定義了特定地域的設(shè)置,比如日期格式和貨幣符號。接下來我們將介紹一些宏,以及一個重要的結(jié)構(gòu) struct lconv 和兩個重要的函數(shù)。

庫宏

下面列出了頭文件 locale.h 中定義的宏,這些宏將在下列的兩個函數(shù)中使用:

序號宏 & 描述
1 LC_ALL
設(shè)置下面的所有選項。
2 LC_COLLATE
影響 strcoll 和 strxfrm 函數(shù)。
3 LC_CTYPE
影響所有字符函數(shù)。
4 LC_MONETARY
影響 localeconv 函數(shù)提供的貨幣信息。
5 LC_NUMERIC
影響 localeconv 函數(shù)提供的小數(shù)點格式化和信息。
6 LC_TIME
影響 strftime 函數(shù)。

庫函數(shù)

下面列出了頭文件 locale.h 中定義的函數(shù):

序號函數(shù) & 描述
1char *setlocale(int category, const char *locale)
設(shè)置或讀取地域化信息。
2struct lconv *localeconv(void)
設(shè)置或讀取地域化信息。

庫結(jié)構(gòu)

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ù)點字符。
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ù)點字符。
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ù)點后要顯示的位數(shù)。
12 frac_digits
貨幣值中小數(shù)點后要顯示的位數(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_posnn_sign_posn:

描述
0 封裝值和 currency_symbol 的括號。
1 放置在值和 currency_symbol 之前的符號。
2 放置在值和 currency_symbol 之后的符號。
3 緊挨著放置在值和 currency_symbol 之前的符號。
4 緊挨著放置在值和 currency_symbol 之后的符號。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號