localeconv

提供: RAD Studio
移動先: 案内検索

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 = &ll;
 /* 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++

+

+

+

+