LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME
From cppreference.com
| ヘッダ <locale.h> で定義 |
||
| #define LC_ALL /* 実装定義 */ |
||
| #define LC_COLLATE /* 実装定義 */ |
||
| #define LC_CTYPE /* 実装定義 */ |
||
| #define LC_MONETARY /* 実装定義 */ |
||
| #define LC_NUMERIC /* 実装定義 */ |
||
| #define LC_TIME /* 実装定義 */ |
||
上記の各マクロ定数は、setlocale の最初の引数として使用するのに適した、それぞれ異なる値を持つ整数定数式に展開されます。
| Constant | 説明 |
LC_ALL
|
Cロケール全体を選択します |
LC_COLLATE
|
Cロケールの照合カテゴリを選択します |
LC_CTYPE
|
Cロケールの文字分類カテゴリを選択します |
LC_MONETARY
|
Cロケールの通貨書式設定カテゴリを選択します |
LC_NUMERIC
|
Cロケールの数値書式設定カテゴリを選択します |
LC_TIME
|
Cロケールの時刻書式設定カテゴリを選択します |
LC_ で始まり、その後に少なくとも1つの大文字が続く名前の追加のマクロ定数が、locale.h で定義される場合があります。例えば、POSIX 仕様では LC_MESSAGES (perror や strerror などを制御します) が要求されており、ISO/IEC 30112:2014 ( 2014年ドラフト) はさらに LC_IDENTIFICATION、LC_XLITERATE、LC_NAME、LC_ADDRESS、LC_TELEPHONE、LC_PAPER、LC_MEASUREMENT、LC_KEYBOARD を定義しており、これらは GNU C ライブラリでサポートされています (LC_XLITERATE を除く)。
[編集] 例
このコードを実行
#include <locale.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main(void) { setlocale(LC_ALL, "en_US.UTF-8"); // the C locale will be the UTF-8 enabled English setlocale(LC_NUMERIC, "de_DE.utf8"); // decimal dot will be German setlocale(LC_TIME, "ja_JP.utf8"); // date/time formatting will be Japanese wchar_t str[100]; time_t t = time(NULL); wcsftime(str, 100, L"%A %c", localtime(&t)); wprintf(L"Number: %.2f\nDate: %Ls\n", 3.14, str); }
実行結果の例
Number: 3,14 Date: 金曜日 2023年09月15日 20時04分14秒
[編集] 参照
- C23標準 (ISO/IEC 9899:2024)
- 7.11/3 Localization <locale.h> (p: TBD)
- C17標準 (ISO/IEC 9899:2018)
- 7.11/3 Localization <locale.h> (p: TBD)
- C11標準 (ISO/IEC 9899:2011)
- 7.11/3 Localization <locale.h> (p: 224)
- C99標準 (ISO/IEC 9899:1999)
- 7.11/3 Localization <locale.h> (p: 205)
- C89/C90標準 (ISO/IEC 9899:1990)
- 4.4 LOCALIZATION <locale.h>
[編集] 関連項目
| 現在のCロケールを取得および設定する (関数) | |
| C++ ドキュメント ( ロケールカテゴリ)
| |