ヘッダー  で定義される型 struct lconv で、数値のフォーマットに関連するメンバーを含む。この構造体は、少なくとも以下のメンバーを任意の順序で含まなければならない。メンバーのセマンティクスとその正常範囲は、#localeconv関数 で説明します。C "ロケールでは、メンバーはコメントで指定された値を持ちます。 
char *decimal_point;     // "."
char *thousands_sep;     // ""
char *grouping;          // ""
char *mon_decimal_point; // ""
char *mon_thousands_sep; // ""
char *mon_grouping;      // ""
char *positive_sign;     // ""
char *negative_sign;     // ""
char *currency_symbol;   // ""
char frac_digits;        // CHAR_MAX
char p_cs_precedes;      // CHAR_MAX
char n_cs_precedes;      // CHAR_MAX
char p_sep_by_space;     // CHAR_MAX
char n_sep_by_space;     // CHAR_MAX
char p_sign_posn;        // CHAR_MAX
char n_sign_posn;        // CHAR_MAX
char *int_curr_symbol;   // ""
char int_frac_digits;    // CHAR_MAX
char int_p_cs_precedes;  // CHAR_MAX
char int_n_cs_precedes;  // CHAR_MAX
char int_p_sep_by_space; // CHAR_MAX
char int_n_sep_by_space; // CHAR_MAX
char int_p_sign_posn;    // CHAR_MAX
char int_n_sign_posn;    // CHAR_MAX
char *decimal_point
通貨以外の量のフォーマットに使用される小数点を表す文字。
char *thousands_sep
通貨以外の量のフォーマットにおいて、小数点文字の前の数字のグループを区切るための文字。
ヘッダー  で定義されるマクロは、NULL と
LC_ALL
LC_COLLATE;
LC_CTYPE
LC_MONETARY
LC_NUMERIC
LC_TIME
で、値が明確な整数の定数式に展開され、setlocale関数の第一引数として使用するのに適しています。また、LC_ と大文字で始まる追加のマクロ定義も実装によって指定できます。
char *setlocale(int category, const char *locale);
struct lconv *localeconv(void);
setlocale()関数は、プログラムの現在のロケールを設定または照会するために使用します。
localeがNULLでない場合、プログラムの現在のロケールは引数に応じて引数に応じて変更されます。 
引数 category は、プログラムの現在のロケールのどの部分を修正するかを決めます。
localeがNULLの場合、現在のロケールは問い合わせをするだけで変更はません。
localeconv()関数は、現在のロケールの構造体lconvへのポインタを返します。 
この構造体は次のセクションで示され、ロケールカテゴリ LC_NUMERIC および '''LC_MONETARY'' に関連するすべての値を含みます。
プログラムでは、関数printf()やstrfmon()を使用することもできますが、これらは実際に使用されているロケールに応じて動作します。
The struct lconv contains the following fields:
----
struct lconvには、以下のフィールドがあります。
char *decimal_point;
小数点を表す文字。
char *thousands_sep;
小数点の左にある桁グループの区切り文字。
char *grouping;
各要素はグループ内の桁数であり、インデックスが大きい要素はさらに左になります。 
CHAR_MAXという値を持つ要素は、それ以上のグループ化が行われないことを意味します。
0の値を持つ要素は、前の要素が左隣のすべてのグループに使用されることを意味します。
char *int_curr_symbol;
最初の3文字は通貨記号 ISO 4217の通貨記号です。 
4番目の文字は セパレータです。 
5文字目は'0'です。
char *currency_symbol;
現地通貨記号。
char *mon_decimal_point;
上記 decimal_point に同じ。
char *mon_thousands_sep;
上記 thousands_sep に同じ。
char *mon_grouping;
上記 grouping に同じ。
char *positive_sign;
正の値を示す符号。
char *negative_sign;
負の値を示す符号。
char  int_frac_digits;
国際的な小数点以下の桁数。
char  frac_digits;
ローカルな小数点以下の数字。
char  p_cs_precedes;
currency_symbolの前に正の値がある場合は1、成功した場合は0とります。
char  p_sep_by_space;
正の金額のとき、通貨記号と金額をスペースで区切るなら、currency_symbol を 1とします。
char  n_cs_precedes;
負の金額のとき、通貨記号が符号に前置するならばcurrency_symbol を 1に、さもなければ 0 になります。
char  n_sep_by_space;
負の金額をセパレータで区切る場合、currency_symbol は 1に、さもなければ 0 になります。
char  p_sign_posn;
char  n_sign_posn;
正負の符号位置：
3: 符号文字列は、currency_symbolの直前にあります。
int main(void)
{
    /* Locale is set to "C" before this. This call sets it
       to the "current locale" by reading environment variables: */
    setlocale(LC_ALL, "");
    const struct lconv * const currentlocale = localeconv();
    printf("In the current locale, the default currency symbol is: %s\n",
        currentlocale->currency_symbol);
    return EXIT_SUCCESS;
}