|
Tweet
|
#include <locale.h>
char *setlocale(int category, const char *locale)
setlocale() は第1引数で指定されたカテゴリに対して、第2引数で指定され
たロケールを設定します。カテゴリは locale.h で定義されている定数で、以
下のものを表わします。
------------------------------------------------------------------------ カテゴリ ロケールの影響を受ける処理 ------------------------------------------------------------------------ LC_COLLATE 文字の照合や正規表現に関する処理 LC_CTYPE 文字の種類や変換に関する処理 LC_MESSAES メッセージカタログに関する処理 LC_MONETARY 通貨単位や金額の表記 LC_NUMERIC 数値の表記 LC_TIME 日付や時間の表記 LC_ALL 上記すべて ------------------------------------------------------------------------通常はすべてのカテゴリに対して現在のプロセスのロケールを設定します。そ の場合第1引数に LC_ALL、第2引数に "" (長さ 0 の文字列) を指定します。
setlocale(LC_ALL, "");
第2引数にたとえば "ja_JP.SJIS" のようにロケール名を明示的に指定するこ
ともできますが、特別な理由がある場合を除いて、動作するロケールをそのよ
うに限定することは推奨されません。
setlocale() を使用して現在設定されているロケール情報を取得することもで きます。その場合第2引数に NULL を指定します。
char *locale;
:
locale = setlocale(LC_CTYPE, NULL);
ロケールに関する C 言語標準ライブラリ関数には次のものがあります。
------------------------------------------------------------------------
関数 説明
------------------------------------------------------------------------
setlocale() ロケールの設定を行う
localeconv() ロケールに依存する情報を入手する
nl_langinfo()*1 ロケールに依存する情報を入力する
strftime() フォーマット文字列に従って日付や時間を表示する
strptime() 文字列から時間情報への変換を行う
strfmon() ロケール依存のフォーマットで金額数値を表示する
------------------------------------------------------------------------
*1: 引数に指定する定数 YESSTR と NOSTR は古い仕様のものです。
YESEXPR と NOEXPR を使用してください。
ロケールに関する国際化関数と非国際化関数の対応は次のとおりです。
------------------------------------------------------------------------ 非国際化関数 国際化関数 ------------------------------------------------------------------------ asctime() strftime() ctime() strftime() ------------------------------------------------------------------------