locale.h

locale.h ヘッダー・ファイルは、localdtconv() および localeconv() ライブラリー関数 (現行ロケールから値を検索する) の宣言、および setlocale() 関数 (国際化アプリケーションのロケール設定値を照会または変更するために使用される) の宣言を含んでいます。

locale.h ファイルは lconv 構造体を宣言します。次の表 1 は、lconv 構造体のエレメントと、C ロケールのデフォルトを 示しています。

表 1. lconv 構造体のエレメント
エレメント エレメントの目的 デフォルト
char *decimal_point 非通貨数量をフォーマット設定するのに使用される小数点文字。 "."
char *thousands_sep フォーマット済みの非通貨数量で小数点文字の左側の 桁グループを分離するのに使用される文字。 ""
char *grouping フォーマット済みの非通貨数量で それぞれの桁グループのサイズを示すストリング。ストリングの各文字の値は、グループの桁数を決定します。 CHAR_MAX の値は、これ以上グループがないことを示します。0 は、直前のエレメントが残りの桁のために使用されることを 示します。 ""
char *int_curr_symbol 現行ロケール用の国際通貨記号。先頭の 3 文字には、英字の国際通貨記号が含まれています。4 番目の文字 (通常はスペース) は、通貨数量から 国際通貨記号を分離するのに使用される文字です。 ""
char *currency_symbol 現行ロケールのローカル通貨記号。 ""
char *mon_decimal_point 通貨数量のフォーマット設定に使用される小数点文字。 "."
char *mon_thousands_sep フォーマット済みの通貨数量における数字の区切り文字。 ""
char *mon_grouping フォーマット済みの通貨数量で それぞれの桁グループのサイズを示すストリング。ストリングの各文字の値は、グループの桁数を決定します。 CHAR_MAX の値は、これ以上グループがないことを示します。0 は、直前のエレメントが残りの桁のために使用されることを 示します。 ""
char *positive_sign 通貨数量で使用される正符号を示すストリング。 ""
char *negative_sign 通貨数量で使用される負符号を示すストリング。 ""
char int_frac_digits 国際的にフォーマット済みの通貨数量に対して、その小数部の右側に表示される桁の数。 UCHAR_MAX
char frac_digits 通貨数量における小数部の右側の桁の数。 UCHAR_MAX
char p_cs_precedes 負でないフォーマット済み通貨数量の中で、通貨記号の配置を指示する値。 有効な値のリストについては、表 2 を参照してください。 UCHAR_MAX
char p_sep_by_space 負でないフォーマット済み通貨数量の中で、空白文字の使用を指示する値。 有効な値のリストについては、表 2 を参照してください。 UCHAR_MAX
char n_cs_precedes 負のフォーマット済み通貨数量の中で、通貨記号の配置を指示する値。 有効な値のリストについては、表 2 を参照してください。 UCHAR_MAX
char n_sep_by_space 負のフォーマット済み通貨数量の中で、空白文字の使用を指示する値。 有効な値のリストについては、表 2 を参照してください。 UCHAR_MAX
char p_sign_posn 負でないフォーマット済み通貨数量 の positive_sign の位置を示す値。有効な値のリストについては、表 2 を参照してください。 UCHAR_MAX
char n_sign_posn 負のフォーマット済み通貨数量の negative_sign の位置を示す値。有効な値のリストについては、表 2 を参照してください。 UCHAR_MAX
char *left_parenthesis 負の値の通貨記号。
注: このエレメントは、IBM 固有の拡張機能です。
""
char *right_parenthesis 負の値の通貨記号。
注: このエレメントは、IBM 固有の拡張機能です。
""
char *debit_sign Debit_sign 文字ストリング。
注: このエレメントは、IBM 固有の拡張機能です。
""
char *credit_sign Credit_sign 文字ストリング。
注: このエレメントは、IBM 固有の拡張機能です。
""
char int_p_cs_precedes 国際フォーマット設定の場合に、負でない通貨数量の中で通貨記号の配置を指示する値。 有効な値のリストについては、表 2 を参照してください。 UCHAR_MAX
char int_n_cs_precedes 国際フォーマット設定の場合に、負の通貨数量の中で通貨記号の配置を指示する値。 有効な値のリストについては、表 2 を参照してください。 UCHAR_MAX
char int_p_sep_by_space 国際フォーマット設定の場合に、負でない通貨数量の中で空白文字の使用を指示する値。 有効な値のリストについては、表 2 を参照してください。 UCHAR_MAX
char int_n_sep_by_space 国際フォーマット設定の場合に、負の通貨数量の中で空白文字の使用を指示する値。 有効な値のリストについては、表 2 を参照してください。 UCHAR_MAX
char int_p_sign_posn 国際フォーマット設定の場合に、負でない通貨数量に対する正符号の配置を指示する値。 有効な値のリストについては、表 2 を参照してください。 UCHAR_MAX
char int_n_sign_posn 国際フォーマット設定の場合に、負の通貨数量に対する負符号の配置を指示する値。 有効な値のリストについては、表 2 を参照してください。 UCHAR_MAX

有効な値のリストについては、表 2 を参照してください。

表 2. 通貨フォーマット設定値
エレメント
cs_precedes 0 currency_symbol は、フォーマット済み通貨数量の値の後に付けられます。
1 currency_symbol は、フォーマット済み通貨数量の値の前に付けられます。
sep_by_space 0

currency_symbol とフォーマット済み通貨数量はスペースによって分離されません。

1

currency_symbol と符号ストリングが隣接している場合は、これらの記号と値がスペースによって分離されます。それ以外の場合は、通貨記号と値がスペースによって分離されます。

2

currency_symbol と符号ストリングが隣接している場合は、これらの記号が互いにスペースによって分離されます。それ以外の場合は、符号ストリングと値がスペースによって分離されます。

sign_posn 0

数量と currency_symbol は括弧で囲まれます。

1

数量と currency_symbol の前に符号ストリングが付きます。

2

数量と currency_symbol の後に符号ストリングが付きます。

3

currency_symbol の直前に符号ストリングが付きます。

4

currency_symbol の直後に符号ストリングが付きます。

5
debit_sign または credit_sign を、それぞれ negative_sign または positive_sign の代わりに使用します。
注: この値は、IBM 固有の拡張機能です。
locale.h ファイルは、次のように dtconv 構造体 を宣言します。
struct dtconv {
        char *abbrev_month_names[12];   /* Abbreviated month names      */
        char *month_names[12];          /* full month names             */
        char *abbrev_day_names[7];      /* Abbreviated day names        */
        char *day_names[7];             /* full day names               */
        char *date_time_format;         /* date and time format         */
        char *date_format;              /* date format                  */
        char *time_format;              /* time format                  */
        char *am_string;                /* AM string                    */
        char *pm_string;                /* PM string                    */
        char *time_format_ampm;         /* long date format             */
        char *iso_std8601_2000;         /* ISO 8601:2000 std date format*/
};
注: この構造体は、IBM 固有の拡張機能です。

locale.h ファイルは、setlocale() 関数とともに使用する次のマクロ定義も含んでいます。

各国語または文化的特性 (時間帯、通貨記号、文字の ソート順など) に関連するプログラムの局面は、それぞれの ロケールにおけるユーザーの要件に合わせるため、別々のロケールを使って実行時にカスタマイズすることが できます。「z/OS XL C/C++ プログラミング・ガイド」の国際化に関するトピックを参照してください。