- locale.h
-
Стандартная библиотека
языка программирования Сlocale.h — заголовочный файл стандартной библиотеки языка программирования С, который используется для задач, связанных с локализацией.
Содержание
Типы данных
Заголовочный файл объявляет структуру
lconv
и её поля, которая хранит инфомацию о текущей кодировке для форматирования чисел.[1]Название Функция Значение для "C"
char *decimal_point
Разделитель десятичных чисел для неденежных величин "."
char *thousands_sep
Разделитель тысяч для неденежных величин ""
char *grouping
Строка, элементы которой отображают размер каждой группы чисел для форматированных неденежных величин ""
char *mon_decimal_point
Разделитель десятичных чисел для денежных величин ""
char *mon_thousands_sep
Разделитель тысяч для денежных величин ""
char *mon_grouping
Строка, элементы которой отображают размер каждой группы чисел для форматированных денежных величин ""
char *positive_sign
Символ, отображающий неотрицательность для денежных величин ""
char *negative_sign
Символ, отображающий отрицательность денежных величин ""
char *currency_symbol
Знак валюты ""
char frac_digits
Число дробных знаков для денежных величин CHAR_MAX
char p_cs_precedes
1 если знак валюты предшествует неотрицательной денежной величине и 0 в противном случае CHAR_MAX
char n_cs_precedes
1 если знак валюты предшествует отрицательной денежной величине и 0 в противном случае CHAR_MAX
char p_sep_by_space
Указывает промежуток между символом валюты, знаком и неотрицательной денежной величиной CHAR_MAX
char n_sep_by_space
Указывает промежуток между символом валюты, знаком и отрицательной денежной величиной CHAR_MAX
char p_sign_posn
Указывает позицию положительного знака для неотрицательных денежных величин CHAR_MAX
char n_sign_posn
Указывает позицию отрицательного знака для отрицательных денежных величин CHAR_MAX
char *int_curr_symbol
Международный символ валюты ""
char int_frac_digits
Количество дробных чисел для денежных величин в международном формате CHAR_MAX
char int_p_cs_precedes
1 если международный валютный символ предшествует неотрицательной денежной величине и 0 наоборот CHAR_MAX
char int_n_cs_precedes
тоже самое для отрицательных денежных величин в международном формате CHAR_MAX
char int_p_sep_by_space
Указывает расстояние между знаком, символом и значением денежной величины в международном формате CHAR_MAX
char int_n_sep_by_space
тоже самое для отрицательных чисел CHAR_MAX
char int_p_sign_posn
Указывает расстояние между положительным знаком и денежной величиной в международном формате CHAR_MAX
char int_n_sign_posn
тоже самое для отрицательных денежных величин в международном формате CHAR_MAX
Макросы
Заголовочный файл определяет следующие макросы-категории:[1]
Название Затрагивает LC_ALL все параметры локализации LC_COLLATE поведение функций srtcoll и strxfrm LC_CTYPE поведение всех функций из ctype.h кроме isdigit и isxdigit LC_MONETARY отображение денежных величин LC_NUMERIC отображение десятичных чисел LC_TIME поведение strftime и wcstrftime Функции
#include <locale.h> struct lconv *localeconv(void); char *setlocale(int category, const char *locale);
Функция
localeconv
получает текущую кодировку.Функция
setlocale
устанавливает новую локализацию для операций, связанных с категориейcategory
(является одной из предопределённых макросами). Стандарт определяет следующие кодировки:""
— локализация по умолчанию для данной платформы"C"
— минимальная локализация для окружения языка Си
и иные системно-зависимые.[1]
Если запрос на изменение локализации может быть удовлетворён, функция возвращает текущую локализацию для категории
category
. В противном случае возвращается NULL.При запуске программы используется
"C"
локализация.Пример кода
#include <stdio.h> #include <locale.h> int main(void) { struct lconv* currentlocale; currentlocale = localeconv(); printf("In current locale standart currency symbol is %c\n", *(currentlocale->currency_symbol)); return 0; }
Ссылки
locale.h
— основные определения, The Single UNIX® Specification, выпуск 7 от The Open Group (англ.)localeconv
— системные интерфейсы, The Single UNIX® Specification, выпуск 7 от The Open Group (англ.)setlocale
— системные интерфейсы, The Single UNIX® Specification, выпуск 7 от The Open Group (англ.)
Примечания
- ↑ 1 2 3 ISO/IEC 9899:1999
Категория:- Стандартные библиотечные заголовки языка Си
Wikimedia Foundation. 2010.