lconv
From cppreference.com
| ヘッダ <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_symbol、positive_sign、および非負の通貨値の区切りを示します (public メンバーオブジェクト) |
| char n_sep_by_space |
currency_symbol、negative_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_symbol、positive_sign、および非負の国際通貨値の区切りを示します (public メンバーオブジェクト) |
| char int_n_sep_by_space (C99) |
int_curr_symbol、negative_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_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 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>
[編集] 関連項目
| 現在のロケールの数値と通貨の書式設定の詳細を問い合わせる (関数) | |
| C++ ドキュメント for lconv
| |