C-standard-library-c-function-setlocale

提供:Dev Guides
移動先:案内検索

Cライブラリ関数-setlocale()

説明

Cライブラリ関数 char setlocale(int category、const char * locale)*は、場所に依存する情報を設定または読み取ります。

宣言

次に、setlocale()関数の宣言を示します。

char *setlocale(int category, const char *locale)

パラメーター

  • category -これは、ロケール設定の影響を受ける関数のカテゴリを指定する名前付き定数です。
  • 以下のすべてについて LC_ALL
  • 文字列比較のための LC_COLLATE 。 strcoll()を参照してください。
  • 文字の分類と変換のための LC_CTYPE 。 例えば-strtoupper()。
  • localeconv()の通貨形式の LC_MONETARY
  • localeconv()の小数点区切り文字の LC_NUMERIC
  • strftime()を使用した日付と時刻のフォーマット用の LC_TIME
  • システム応答の LC_MESSAGES
  • locale -ロケールがNULLまたは空の文字列 ""の場合、ロケール名は上記のカテゴリと同じ名前の環境変数の値から設定されます。

戻り値

setlocale()の呼び出しが成功すると、ロケールセットに対応する不透明な文字列が返されます。 要求が受け入れられない場合、戻り値はNULLです。

次の例は、setlocale()関数の使用法を示しています。

#include <locale.h>
#include <stdio.h>
#include <time.h>

int main () {
   time_t currtime;
   struct tm *timer;
   char buffer[80];

   time( &currtime );
   timer = localtime( &currtime );

   printf("Locale is: %s\n", setlocale(LC_ALL, "en_GB"));
   strftime(buffer,80,"%c", timer );
   printf("Date is: %s\n", buffer);


   printf("Locale is: %s\n", setlocale(LC_ALL, "de_DE"));
   strftime(buffer,80,"%c", timer );
   printf("Date is: %s\n", buffer);

   return(0);
}

次の結果を生成する上記のプログラムをコンパイルして実行しましょう-

Locale is: en_GB
Date is: Fri 05 Dec 2014 10:35:02 UTC
Locale is: de_DE
Date is: Fr 05 Dez 2014 10:35:02 UTC