鍍金池/ 教程/ C/ C 標(biāo)準(zhǔn)庫 - < locale.h >
C 輸入 & 輸出
C 標(biāo)準(zhǔn)庫 - < signal.h >
C 標(biāo)準(zhǔn)庫- < string.h >
C 循環(huán)
C 數(shù)據(jù)類型
C 字符串
C 標(biāo)準(zhǔn)庫 - < stdarg.h >
C 標(biāo)準(zhǔn)庫 - < math.h >
C 預(yù)處理器
C 存儲類
C 標(biāo)準(zhǔn)庫 - < locale.h >
C 指針
C 標(biāo)準(zhǔn)庫 - < assert.h >
C 結(jié)構(gòu)體
C 命令行參數(shù)
C 標(biāo)準(zhǔn)庫 - < ctype.h >
C 強(qiáng)制類型轉(zhuǎn)換
C 程序結(jié)構(gòu)
C typedef
C 遞歸
C 運(yùn)算符
C 環(huán)境設(shè)置
C 函數(shù)
C 位域
C 標(biāo)準(zhǔn)庫 - < stddef.h >
C 數(shù)組
C 標(biāo)準(zhǔn)庫 - < errno.h >
C 標(biāo)準(zhǔn)庫 -參考手冊
C 可變參數(shù)
C 變量
C 錯誤處理
C 作用域規(guī)則
C 文件讀寫
C 內(nèi)存管理
C 基本語法
C 標(biāo)準(zhǔn)庫 - < stdio.h >
C 標(biāo)準(zhǔn)庫 - < time.h >
C 頭文件
C 判斷
C 標(biāo)準(zhǔn)庫 - < limits.h >
C 共用體
C 標(biāo)準(zhǔn)庫 - < setjmp.h >
C 常量
C 標(biāo)準(zhǔn)庫 - < float.h >
C 簡介
C 標(biāo)準(zhǔn)庫 - < stdlib.h >

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

簡介

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ù)。

庫函數(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ù)點(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_posnn_sign_posn:

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