名前空間
変種
操作

lconv

From 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
小数点として使用される文字
(public メンバーオブジェクト)
char* thousands_sep
小数点より前の桁のグループを区切るために使用される文字
(public メンバーオブジェクト)
char* grouping
桁グループのサイズを示す要素の文字列
(public メンバーオブジェクト)

[編集] 通貨数値フォーマットパラメータ

char* mon_decimal_point
小数点として使用される文字
(public メンバーオブジェクト)
char* mon_thousands_sep
小数点より前の桁のグループを区切るために使用される文字
(public メンバーオブジェクト)
char* mon_grouping
桁グループのサイズを示す要素の文字列
(public メンバーオブジェクト)
char* positive_sign
非負の通貨数量を示すために使用される文字列
(public メンバーオブジェクト)
char* negative_sign
負の通貨数量を示すために使用される文字列
(public メンバーオブジェクト)

[編集] ローカル通貨数値フォーマットパラメータ

char* currency_symbol
現在のCロケールで通貨に使用されるシンボル
(public メンバーオブジェクト)
char frac_digits
通貨数量の小数点以下に表示する桁数
(public メンバーオブジェクト)
char p_cs_precedes
1の場合、currency_symbolは非負の値の前に配置されます。0の場合は後に配置されます
(public メンバーオブジェクト)
char n_cs_precedes
1の場合、currency_symbolは負の値の前に配置されます。0の場合は後に配置されます
(public メンバーオブジェクト)
char p_sep_by_space
currency_symbolpositive_sign、および非負の通貨値の区切りを示します
(public メンバーオブジェクト)
char n_sep_by_space
currency_symbolnegative_sign、および負の通貨値の区切りを示します
(public メンバーオブジェクト)
char p_sign_posn
非負の通貨値におけるpositive_signの位置を示します
(public メンバーオブジェクト)
char n_sign_posn
負の通貨値におけるnegative_signの位置を示します
(public メンバーオブジェクト)

[編集] 国際通貨数値フォーマットパラメータ

char* int_curr_symbol
現在のCロケールで国際通貨名として使用される文字列
(public メンバーオブジェクト)
char int_frac_digits
国際通貨数量の小数点以下に表示する桁数
(public メンバーオブジェクト)
char int_p_cs_precedes
(C99)
1の場合、int_curr_symbolは非負の国際通貨値の前に配置されます。0の場合は後に配置されます
(public メンバーオブジェクト)
char int_n_cs_precedes
(C99)
1の場合、int_curr_symbolは負の国際通貨値の前に配置されます。0の場合は後に配置されます
(public メンバーオブジェクト)
char int_p_sep_by_space
(C99)
int_curr_symbolpositive_sign、および非負の国際通貨値の区切りを示します
(public メンバーオブジェクト)
char int_n_sep_by_space
(C99)
int_curr_symbolnegative_sign、および負の国際通貨値の区切りを示します
(public メンバーオブジェクト)
char int_p_sign_posn
(C99)
非負の国際通貨値におけるpositive_signの位置を示します
(public メンバーオブジェクト)
char int_n_sign_posn
(C99)
負の国際通貨値におけるnegative_signの位置を示します
(public メンバーオブジェクト)

groupingおよびmon_groupingが指すC文字列の文字は、それらの数値値に従って解釈されます。終端の'\0'に遭遇すると、最後に見た値が残りの桁に繰り返されると想定されます。CHAR_MAXに遭遇すると、それ以上の桁はグループ化されません。典型的な3桁ずつのグループ化は"\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 Localization <locale.h> (p: TBD)
  • C17標準 (ISO/IEC 9899:2018)
  • 7.11/2 Localization <locale.h> (p: TBD)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.11/2 Localization <locale.h> (p: 223)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.11/2 Localization <locale.h> (p: 204)
  • C89/C90標準 (ISO/IEC 9899:1990)
  • 4.4 LOCALIZATION <locale.h>

[編集] 関連項目

現在のロケールの数値と通貨の書式設定の詳細を問い合わせる
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)