LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME
|
Определено в заголовочном файле
<locale.h>
|
||
|
#define LC_ALL /* implementation-defined */
|
||
|
#define LC_COLLATE /* implementation-defined */
|
||
|
#define LC_CTYPE /* implementation-defined */
|
||
|
#define LC_MONETARY /* implementation-defined */
|
||
|
#define LC_NUMERIC /* implementation-defined */
|
||
|
#define LC_TIME /* implementation-defined */
|
||
Каждая из вышеуказанных макроконстант раскрывается в целочисленные константные выражения с уникальными значениями, которые подходят для использования в качестве первого аргумента функции setlocale .
| Константа | Описание |
LC_ALL
|
выбирает всю локаль C |
LC_COLLATE
|
выбирает категорию сортировки локали C |
LC_CTYPE
|
выбирает категорию классификации символов локали C |
LC_MONETARY
|
выбирает категорию денежного форматирования локали C |
LC_NUMERIC
|
выбирает категорию числового форматирования локали C |
LC_TIME
|
выбирает категорию форматирования времени локали C |
Дополнительные макроконстанты, имена которых начинаются с
LC_
, за которым следует хотя бы одна заглавная буква, могут быть определены в
locale.h
. Например, спецификация POSIX требует наличия
LC_MESSAGES
(который управляет, среди прочего,
perror
и
strerror
), ISO/IEC 30112:2014 (
2014 draft
) дополнительно определяет
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"); // локаль C будет английской с поддержкой UTF-8 setlocale(LC_NUMERIC, "de_DE.utf8"); // десятичный разделитель будет немецким setlocale(LC_TIME, "ja_JP.utf8"); // форматирование даты/времени будет японским 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 Локализация <locale.h> (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.11/3 Локализация <locale.h> (стр.: TBD)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.11/3 Локализация <locale.h> (стр: 224)
- Стандарт C99 (ISO/IEC 9899:1999):
-
- 7.11/3 Локализация <locale.h> (стр: 205)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
-
- 4.4 ЛОКАЛИЗАЦИЯ <locale.h>
Смотрите также
|
получает и устанавливает текущую локаль C
(функция) |
|
|
C++ documentation
для
locale categories
|
|