C 標準ライブラリ - <locale.h>


はじめに

locale.h ヘッダー ファイルは、日付形式や通貨記号などのロケール固有の設定を定義します。次に、いくつかのマクロ、重要な構造体 struct lconv と 2 つの重要な関数を紹介します。

ライブラリ マクロ

ヘッダー ファイル locale.h で定義されているマクロを以下に示します。これらのマクロは、次の 2 つの関数で使用されます:

シリアル番号マクロと説明
1LC_ALL
以下のすべてのオプションを設定します。
2LC_COLLATE
は、strcoll 関数と strxfrm 関数に影響します。
3LC_CTYPE
は、すべてのキャラクター機能に影響します。
4LC_MONETARY
は、localeconv 関数によって提供される通貨情報に影響します。
5LC_NUMERIC
は、小数点の書式設定と localeconv 関数によって提供される情報に影響します。
6LC_TIME
はstrftime関数に影響します。

ライブラリ関数

ヘッダーファイル locale.h で定義されている関数を以下に示します:

シリアル番号関数と説明
1char *setlocale(int category, const char *locale)
ローカライズされた情報を設定または読み取ります。
2struct lconv *localeconv(void)
ローカリゼーション情報を設定または読み取ります。

ライブラリ構造

typedef struct {   char *decimal_point;   char *thousands_sep;   char *grouping;   char *int_curr_symbol;   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;   char p_sep_by_space;   char n_cs_precedes;   char n_sep_by_space;   char p_sign_posn;   char n_sign_posn;} lconv

以下は、各フィールドの説明です:

シリアル番号フィールドと説明
1小数点
非通貨値に使用される小数点文字。
2thousands_sep
非金額の千の区切り文字。
3グループ化
非貨幣数量における数値の各グループのサイズを表す文字列。各文字は整数値を表し、各整数は現在のグループ内のビット数を指定します。値 0 は、前の値が残りのグループに適用されることを意味します。
4int_curr_symbol
国際通貨記号に使用される文字列。最初の 3 文字は ISO 4217:1987 で指定されており、4 番目の文字は通貨記号と通貨金額を区切ります。
5currency_symbol
通貨のローカル記号。
6mon_decmal_point
通貨値に使用される小数点文字。
7mon_thousands_sep
通貨値の千の区切り文字。
8mon_grouping
通貨価値における数値の各グループのサイズを表す文字列。各文字は整数値を表し、各整数は現在のグループ内のビット数を指定します。値 0 は、前の値が残りのグループに適用されることを意味します。
9positive_sign
正の通貨値に使用される文字。
10negative_sign
負の通貨値に使用される文字。
11int_frac_digits
国際通貨値の小数点以下に表示される桁数。
12frac_digits
通貨値の小数点以下に表示される桁数。
13p_cs_precedes
1 に等しい場合、currency_symbol は正の通貨値の前に表示されます。 0 に等しい場合、currency_symbol は正の通貨値の後に表示されます。
14p_sep_by_space
1 に等しい場合、currency_symbol と正の通貨値はスペースで区切られます。 0 に等しい場合、currency_symbol と正の通貨値の間にスペースは使用されません。
15n_cs_precedes
1 に等しい場合、currency_symbol は負の通貨値の前に表示されます。 0 に等しい場合、currency_symbol は負の通貨値の後に表示されます。
16n_sep_by_space
1 に等しい場合、currency_symbol と負の通貨値はスペースで区切られます。 0 に等しい場合、currency_symbol と負の通貨値の間にスペースは使用されません。
17p_sign_posn
は、正の通貨値における正の符号の位置を表します。
18n_sign_posn
は、負の通貨値における負符号の位置を表します。

次の値は、p_sign_posnn_sign_posnに使用されます:

の値 の説明
0 値とcurrency_symbolをカプセル化する括弧。
1 value と通貨記号の前に配置される記号。
2valueとcurrency_symbolの後に配置されるシンボル。
3 value と通貨記号の直前に配置される記号。
4valueとcurrency_symbolの直後に配置されるシンボル。