localeconv
locale.h:インデックス への移動
ヘッダーファイル
locale.h
カテゴリ
その他のルーチン
プロトタイプ
struct lconv *localeconv(void);
説明
ロケールの数値形式を問い合わせます。
この関数は,現在のロケールの金額などの数値形式に関する情報を提供します。この情報は,struct lconv 型に格納されています。この構造体は,setlocale でのみ変更できます。その後,localeconv を呼び出すと,lconv 構造体が更新されます。
lconv 構造体は locale.h で定義されており,次のフィールドが含まれます。
char *decimal_point | 金額以外の形式で使用される小数点。空の文字列にはできません。 | char *thousands_sep | 小数点の左側の桁をグループ化するために使用される区切り文字。金額では使用されません。 | char *grouping | 何桁ごとにグループ化するか。金額では使用されません。下の表の値を参照してください。 | char *int_curr_symbol | 現在のロケールの国際通貨記号。記号の形式は ISO 4217「Codes for the Representation of Currency and Funds」で指定されています。 | char *currency_symbol | 現在のロケールのローカルな通貨記号。 | char *mon_decimal_point | 金額の書式設定に使用される小数点。 | char *mon_thousands_sep | 金額の小数点の左側の桁をグループ化するために使用される区切り文字。 | char *mon_grouping | 金額を何桁ごとにグループ化するか。下の表の値を参照してください。 | char *positive_sign | 負でない金額を表す文字列。 | char *negative_sign | 負の金額を表す文字列。 | char int_frac_digits | 国際通貨形式で表示される金額の小数点以下の桁数。 | char frac_digits | 通貨形式で表示される金額の小数点以下の桁数。 | char p_cs_precedes | 負でない通貨量の前に通貨記号が付く場合は,1 に設定されます。通貨記号が金額の後に付く場合は,0 に設定されます。 | char p_sep_by_space | 通貨記号と負でない通貨量をスペースで区切る場合は,1 に設定されます。スペース区切りを使用しない場合は,0 に設定されます。 | char n_cs_precedes | 負の通貨量の前に通貨記号が付く場合は,1 に設定されます。通貨記号が金額の後に付く場合は,0 に設定されます。 | char n_sep_by_space | 通貨記号と負の通貨量をスペースで区切る場合は,1 に設定されます。スペース区切りを使用しない場合は,0 に設定されます。 | char p_sign_posn | 負でない通貨量のどこに正符号を付けるかを示します。 | char n_sign_posn | 負の通貨量のどこに負符号を付けるかを示します。 |
---|
上の文字列(decimal_point を除く)のうち空の文字列は,現在のロケールでサポートされていません。文字列でない char 要素は,負でない数値です。CHAR_MAX に設定されている文字列でない char 要素は,その要素が現在のロケールでサポートされていないことを示します。
grouping および mon_grouping の要素は,次のように設定および解釈されます。
CHAR_MAX |
グループ化は行われません。 |
0 |
残りの桁で,前の要素が繰り返し使用されます。 |
その他の整数 |
現在のグループを構成する桁数を示します。次の要素を読み取って,現在のグループの前の次の桁グループのサイズが決定されます。 |
p_sign_posn および n_sign_posn の要素は,次のように設定および解釈されます。
0 |
金額と通貨記号がかっこで囲まれます。 |
1 |
金額と通貨記号の前に符号文字列が置かれます。 |
2 |
金額と通貨記号の後に符号文字列が置かれます。 |
3 |
金額と通貨記号の直前に符号文字列が置かれます。 |
4 |
金額と通貨記号の直後に符号文字列が置かれます。 |
戻り値
値が設定された struct lconv 型の構造体へのポインタを返します。この構造体の値は,setlocale で LC_MONETARY カテゴリまたは LC_NUMERIC カテゴリを変更すると変更されます。
例
#include <locale.h>
#include <stdio.h>
int main(void)
{
struct lconv ll;
struct lconv *conv = ≪
/* lconv 構造体を読み取ります */
conv = localeconv();
/* 構造体を表示します。*/
printf("Decimal Point : %s\n", conv-> decimal_point);
printf("Thousands Separator : %s\n", conv-> thousands_sep);
printf("Grouping : %s\n", conv-> grouping);
printf("International Currency symbol : %s\n", conv-> int_curr_symbol);
printf("$ thousands separator : %s\n", conv-> mon_thousands_sep);
printf("$ grouping : %s\n", conv-> mon_grouping);
printf("Positive sign : %s\n", conv-> positive_sign);
printf("Negative sign : %s\n", conv-> negative_sign);
printf("International fraction digits : %d\n", conv-> int_frac_digits);
printf("Fraction digits : %d\n", conv-> frac_digits);
printf("Positive $ symbol precedes : %d\n", conv-> p_cs_precedes);
printf("Positive sign space separation: %d\n", conv-> p_sep_by_space);
printf("Negative $ symbol precedes : %d\n", conv-> n_cs_precedes);
printf("Negative sign space separation: %d\n", conv-> n_sep_by_space);
printf("Positive sign position : %d\n", conv-> p_sign_posn);
printf("Negative sign position : %d\n", conv-> n_sign_posn);
return 0;
}
移植性
POSIX | Win32 | ANSI C | ANSI C++ |
---|---|---|---|
+ |
+ |
+ |
+ |