locale.h — заголовочный файл стандартной библиотеки языка программирования С, который используется для задач, связанных с локализацией.

Типы данных Заголовочный файл объявляет структуру lconv и её поля, которая хранит информацию о текущей кодировке для форматирования чисел.

НазваниеФункцияЗначение для "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_MAXchar p_cs_precedes1 если знак валюты предшествует неотрицательной денежной величине и 0 в противном случаеCHAR_MAXchar n_cs_precedes1 если знак валюты предшествует отрицательной денежной величине и 0 в противном случаеCHAR_MAXchar p_sep_by_spaceУказывает промежуток между символом валюты, знаком и неотрицательной денежной величинойCHAR_MAXchar n_sep_by_spaceУказывает промежуток между символом валюты, знаком и отрицательной денежной величинойCHAR_MAXchar p_sign_posnУказывает позицию положительного знака для неотрицательных денежных величинCHAR_MAXchar n_sign_posnУказывает позицию отрицательного знака для отрицательных денежных величинCHAR_MAXchar *int_curr_symbol Международный символ валюты""char int_frac_digits Количество дробных чисел для денежных величин в международном формате CHAR_MAXchar int_p_cs_precedes 1 если международный валютный символ предшествует неотрицательной денежной величине и 0 наоборот CHAR_MAXchar int_n_cs_precedes то же самое для отрицательных денежных величин в международном форматеCHAR_MAXchar int_p_sep_by_space Указывает расстояние между знаком, символом и значением денежной величины в международном форматеCHAR_MAXchar int_n_sep_by_space то же самое для отрицательных чисел CHAR_MAXchar int_p_sign_posn Указывает расстояние между положительным знаком и денежной величиной в международном формате CHAR_MAXchar int_n_sign_posn то же самое для отрицательных денежных величин в международном форматеCHAR_MAX

Макросы Заголовочный файл определяет следующие макросы-категории:

НазваниеЗатрагиваетLC_ALL все параметры локализацииLC_COLLATE поведение функций strcoll и strxfrmLC_CTYPE поведение всех функций из ctype.h кроме isdigit и isxdigitLC_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" — минимальная локализация для окружения языка Си и иные системно-зависимые.

Если запрос на изменение локализации может быть удовлетворён, функция возвращает текущую локализацию для категории category. В противном случае возвращается NULL.

При запуске программы используется "C" локализация.

Пример кода #include <stdio.h> #include <locale.h>

int main(void) { struct lconv* currentlocale; currentlocale = localeconv(); printf("In current locale standard currency symbol is %c\n", *(currentlocale->currency_symbol)); return 0; }

Пример использования функции (setlocale) #include <stdio.h> #include <locale.h>

int main(void) { setlocale(LC_ALL, "RU"); printf("Привет, мир! \n"); return 0; }

Примечания

Ссылки

Категория:Статьи с примерами кода Си