lconv
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <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 に遭遇したとき、それ以降の桁はグループ化されません。 一般的な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 | 通貨記号の後に符号が付きます |
例
Run this code
#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>
関連項目
| 現在のロケールの数値および通貨の書式化の詳細を問い合わせます (関数) | |
lconv の C++リファレンス
| |