名稱空間
變體
操作

lconv

來自 cppreference.com
< c‎ | locale
定義於標頭檔案 <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_symbolpositive_sign 和非負貨幣值之間的分隔
(公有成員物件)
char n_sep_by_space
指示 currency_symbolnegative_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_symbolpositive_sign 和非負國際貨幣值之間的分隔
(公有成員物件)
char int_n_sep_by_space
(C99)
指示 int_curr_symbolnegative_sign 和負國際貨幣值之間的分隔
(公有成員物件)
char int_p_sign_posn
(C99)
指示 positive_sign 在非負國際貨幣值中的位置
(公有成員物件)
char int_n_sign_posn
(C99)
指示 negative_sign 在負國際貨幣值中的位置
(公有成員物件)

groupingmon_grouping 指向的 C 字串中的字元根據其數值進行解釋。當遇到終止的 '\0' 時,最後一個值被認為是剩餘數字的重複。如果遇到 CHAR_MAX,則不再對數字進行分組。典型的一次三個數字的分組是 "\003"

p_sep_by_spacen_sep_by_spaceint_p_sep_by_spaceint_n_sep_by_space 的值解釋如下

0 貨幣符號和值之間沒有空格
1 符號緊貼貨幣符號,值由空格分隔
2 符號緊貼值。貨幣符號由空格分隔

p_sign_posnn_sign_posnint_p_sign_posnint_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>

[編輯] 另請參閱

查詢當前區域設定的數字和貨幣格式詳細資訊
(函式) [編輯]