![]() |
![]() ![]() ![]() |
#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() ------------------------------------------------------------------------