名前空間
変種
操作

lconv

提供: cppreference.com
< c‎ | locale
ヘッダ <locale.h> で定義
struct lconv;

構造体 lconv は C のロケールによって定義される数値および金額の書式化ルールを格納します。 この構造体のオブジェクトは localeconv で取得することができます。 lconv のメンバは char 型と char* 型の値です。 decimal_point を除くそれぞれの char* のメンバは NULL 文字を指している (つまり空の 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 に遭遇したとき、それ以降の桁はグループ化されません。 一般的な3桁ごとのグループ化は "\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 )

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.11/2 Localization <locale.h> (p: 223)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.11/2 Localization <locale.h> (p: 204)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.4 LOCALIZATION <locale.h>

[編集] 関連項目

現在のロケールの数値および通貨の書式化の詳細を問い合わせます
(関数) [edit]