lconv
來自 cppreference.com
定義於標頭檔案 <locale.h> |
||
struct lconv; |
||
結構體 lconv
包含由 C 區域設定定義的數字和貨幣格式化規則。該結構體的物件可以透過 localeconv 獲取。lconv
的成員是 char 型別和 char* 型別的值。除了 decimal_point
之外,每個 char* 成員都可能指向一個空字元(即,一個空的 C 字串)。char 型別的成員都是非負數,如果當前 C 區域設定中沒有相應的可用值,則它們可以是 CHAR_MAX。
目錄 |
[編輯] 成員物件
[編輯] 非貨幣數字格式化引數
char* decimal_point |
用作小數點的字元 (公有成員物件) |
char* thousands_sep |
用於分隔小數點前數字組的字元 (公有成員物件) |
char* grouping |
一個字串,其元素表示數字組的大小 (公有成員物件) |
[編輯] 貨幣數字格式化引數
char* mon_decimal_point |
用作小數點的字元 (公有成員物件) |
char* mon_thousands_sep |
用於分隔小數點前數字組的字元 (公有成員物件) |
char* mon_grouping |
一個字串,其元素表示數字組的大小 (公有成員物件) |
char* positive_sign |
用於表示非負貨幣數量的字串 (公有成員物件) |
char* negative_sign |
用於表示負貨幣數量的字串 (公有成員物件) |
[編輯] 本地貨幣數字格式化引數
char* currency_symbol |
在當前 C 區域設定中用於貨幣的符號 (公有成員物件) |
char frac_digits |
貨幣數量小數點後顯示的位數 (公有成員物件) |
char p_cs_precedes |
如果 currency_symbol 放在非負值之前為 1,之後則為 0 (公有成員物件) |
char n_cs_precedes |
如果 currency_symbol 放在負值之前為 1,之後則為 0 (公有成員物件) |
char p_sep_by_space |
指示 currency_symbol、positive_sign 和非負貨幣值之間的分隔 (公有成員物件) |
char n_sep_by_space |
指示 currency_symbol、negative_sign 和負貨幣值之間的分隔 (公有成員物件) |
char p_sign_posn |
指示 positive_sign 在非負貨幣值中的位置 (公有成員物件) |
char n_sign_posn |
指示 negative_sign 在負貨幣值中的位置 (公有成員物件) |
[編輯] 國際貨幣數字格式化引數
char* int_curr_symbol |
在當前 C 區域設定中用作國際貨幣名稱的字串 (公有成員物件) |
char int_frac_digits |
國際貨幣數量小數點後顯示的位數 (公有成員物件) |
char int_p_cs_precedes (C99) |
如果 int_curr_symbol 放在非負國際貨幣值之前為 1,之後則為 0 (公有成員物件) |
char int_n_cs_precedes (C99) |
如果 int_curr_symbol 放在負國際貨幣值之前為 1,之後則為 0 (公有成員物件) |
char int_p_sep_by_space (C99) |
指示 int_curr_symbol、positive_sign 和非負國際貨幣值之間的分隔 (公有成員物件) |
char int_n_sep_by_space (C99) |
指示 int_curr_symbol、negative_sign 和負國際貨幣值之間的分隔 (公有成員物件) |
char int_p_sign_posn (C99) |
指示 positive_sign 在非負國際貨幣值中的位置 (公有成員物件) |
char int_n_sign_posn (C99) |
指示 negative_sign 在負國際貨幣值中的位置 (公有成員物件) |
由 grouping 和 mon_grouping 指向的 C 字串中的字元根據其數值進行解釋。當遇到終止的 '\0' 時,最後一個值被認為是剩餘數字的重複。如果遇到 CHAR_MAX,則不再對數字進行分組。典型的一次三個數字的分組是 "\003"。
p_sep_by_space、n_sep_by_space、int_p_sep_by_space、int_n_sep_by_space 的值解釋如下
0 | 貨幣符號和值之間沒有空格 |
1 | 符號緊貼貨幣符號,值由空格分隔 |
2 | 符號緊貼值。貨幣符號由空格分隔 |
p_sign_posn、n_sign_posn、int_p_sign_posn、int_n_sign_posn 的值解釋如下
0 | 值和貨幣符號周圍使用括號表示符號 |
1 | 符號在值和貨幣符號之前 |
2 | 符號在值和貨幣符號之後 |
3 | 符號在貨幣符號之前 |
4 | 符號在貨幣符號之後 |
[編輯] 示例
執行此程式碼
#include <locale.h> #include <stdio.h> int main(void) { setlocale(LC_ALL, "ja_JP.UTF-8"); struct lconv* lc = localeconv(); printf("Japanese currency symbol: %s(%s)\n", lc->currency_symbol, lc->int_curr_symbol); }
可能的輸出
Japanese currency symbol: ¥(JPY )
[編輯] 參考
- C23 標準 (ISO/IEC 9899:2024)
- 7.11/2 本地化 <locale.h> (p: TBD)
- C17 標準 (ISO/IEC 9899:2018)
- 7.11/2 本地化 <locale.h> (p: TBD)
- C11 標準 (ISO/IEC 9899:2011)
- 7.11/2 本地化 <locale.h> (p: 223)
- C99 標準 (ISO/IEC 9899:1999)
- 7.11/2 本地化 <locale.h> (p: 204)
- C89/C90 標準 (ISO/IEC 9899:1990)
- 4.4 本地化 <locale.h>
[編輯] 另請參閱
查詢當前區域設定的數字和貨幣格式詳細資訊 (函式) | |
C++ documentation for lconv
|