Локаль

Языковой стандарт — это настройки страны/региона и языковые настройки, с помощью которых можно настраивать программы. К числу категорий, зависящих от языкового стандарта, относится отображение форматов дат и денежных значений. Дополнительные сведения см. в категориях языкового стандарта.

setlocale Используйте функцию для изменения или запроса некоторых или всех сведений о текущем языковом стандарте программы или потока при использовании функций без _l суффикса. Функции с суффиксом _l используют переданные им параметры языкового стандарта только во время выполнения этой конкретной функции. Чтобы создать языковой стандарт для использования с функцией с суффиксом _l , используйте _create_locale. Чтобы освободить этот языковой стандарт, используйте _free_locale. Чтобы получить текущий языковой стандарт, используйте _get_current_locale.

Используется _configthreadlocale для управления тем, имеет ли каждый поток собственный языковой стандарт или все потоки в программе имеют одинаковый языковой стандарт. Дополнительные сведения см. в разделе "Языковые стандарта" и "Кодовые страницы".

Доступны более безопасные версии этих функций, в следующей таблице они отмечены суффиксом _s ("secure, безопасная"). Дополнительные сведения см. в разделе "Функции безопасности" в CRT.

Подпрограммы, зависящие от языкового стандарта

Маршрут Использование Зависимость настройки категории setlocale
atof, _atof_l, _wtof, _wtof_l Преобразовать символ в значение с плавающей запятой LC_NUMERIC
atoi, _atoi_l, _wtoi, _wtoi_l Преобразовать символ в целочисленное значение LC_NUMERIC
_atoi64, _atoi64_l, _wtoi64, _wtoi64_l Преобразовать символ в 64-разрядное целочисленное значение LC_NUMERIC
atol, _atol_l, _wtol, _wtol_l Преобразовать символ в значение long LC_NUMERIC
_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt, _atoflt_l Преобразовать символ в значение double-long LC_NUMERIC
is, isw подпрограммы Проверить данное целое число на указанное условие. LC_CTYPE
isleadbyte, _isleadbyte_l Проверить на старший байт LC_CTYPE
localeconv Прочитать соответствующие значения для форматирования числовых величин LC_MONETARY, LC_NUMERIC
MB_CUR_MAX Максимальная длина в байтах любого многобайтового символа в текущем языковом стандарте (макрос определен в STDLIB.H) LC_CTYPE
_mbccpy, _mbccpy_l,_mbccpy_s, _mbccpy_s_l Скопировать один многобайтовый символ LC_CTYPE
_mbclen, mblen, _mblen_l Проверить и вернуть количество байтов в многобайтовом символе LC_CTYPE
strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l Для строк многобайтовой кодировки: проверить каждый символ в строке; вернуть длину строки LC_CTYPE
mbstowcs, _mbstowcs_l,mbstowcs_s, _mbstowcs_s_l Преобразовать последовательность многобайтовых символов в соответствующую последовательность расширенных символов. LC_CTYPE
mbtowc, _mbtowc_l Преобразовать многобайтовый символ в соответствующий расширенный символ. LC_CTYPE
printfФункции Записать форматированные выходные данные LC_NUMERIC (определяет вывод символа системы счисления)
scanfФункции Прочитать форматированные входные данные LC_NUMERIC (определяет распознавание символа системы счисления)
setlocale, _wsetlocale Выбрать языковой стандарт для программы Неприменимо
strcoll, wcscoll, _mbscoll, _strcoll_l, _wcscoll_l, _mbscoll_l Сравнить символы двух строк LC_COLLATE
_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l Сравнить две строки без учета регистра LC_CTYPE
_stricoll, _wcsicoll, _mbsicoll, _stricoll_l, _wcsicoll_l, _mbsicoll_l Сравнить символы двух строк (регистр не учитывается) LC_COLLATE
_strncoll, _wcsncoll, _mbsncoll, _strncoll_l, _wcsncoll_l, _mbsncoll_l Сравнить первые n символов двух строк. LC_COLLATE
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l Сравнить символы двух строк без учета регистра. LC_CTYPE
_strnicoll, _wcsnicoll, _mbsnicoll, _strnicoll_l, _wcsnicoll_l, _mbsnicoll_l Сравнить первые n символов двух строк (регистр не учитывается) LC_COLLATE
strftime, wcsftime, _strftime_l, _wcsftime_l Форматировать значение даты и времени в соответствии с предоставленным аргументом format LC_TIME
_strlwr, _wcslwr, _mbslwr, _strlwr_l, _wcslwr_l, _mbslwr_l,_strlwr_s, _strlwr_s_l, _mbslwr_s, _mbslwr_s_l, _wcslwr_s, _wcslwr_s_l Преобразовать "на месте" каждую прописную букву в указанной строке в нижний регистр LC_CTYPE
strtod, _strtod_l, wcstod, _wcstod_l Преобразовать строку символов в значение double LC_NUMERIC (определяет распознавание символа системы счисления)
strtol, wcstol, _strtol_l, _wcstol_l Преобразовать строку символов в значение long LC_NUMERIC (определяет распознавание символа системы счисления)
strtoul, _strtoul_l, wcstoul, _wcstoul_l Преобразовать строку символов в значение unsigned long LC_NUMERIC (определяет распознавание символа системы счисления)
_strupr, _strupr_l, _mbsupr, _mbsupr_l, _wcsupr_l, _wcsupr,_strupr_s, _strupr_s_l, _mbsupr_s, _mbsupr_s_l, _wcsupr_s, _wcsupr_s_l Преобразовать "на месте" каждую букву в нижнем регистре в строке в верхний регистр LC_CTYPE
strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l Преобразовать строку в упорядоченную форму в соответствии с языковым стандартом LC_COLLATE
tolower, _tolower, towlower, _tolower_l, _towlower_l,_mbctolower, _mbctolower_l, _mbctoupper, _mbctoupper_l Преобразовать указанный символ в соответствующий символ нижнего регистра LC_CTYPE
toupper, _toupper, towupper, _toupper_l, _towupper_l,_mbctolower, _mbctolower_l, _mbctoupper, _mbctoupper_l Преобразовать указанный символ в соответствующую прописную букву LC_CTYPE
wcstombs, _wcstombs_l,wcstombs_s, _wcstombs_s_l Преобразовать последовательность расширенных символов в соответствующую последовательность многобайтовых символов LC_CTYPE
wctomb, _wctomb_l,wctomb_s, _wctomb_s_l Преобразовать расширенный символ в соответствующий многобайтовый символ LC_CTYPE

Примечание.

Для многобайтовых подпрограмм кодовая страница многобайтов должна быть эквивалентна языковому стандарту.setlocale _setmbcpс аргументом _MB_CP_LOCALE делает многобайтовую кодовую страницу той же, что и кодовая setlocale страница.

См. также

Интернационализация
Универсальные подпрограммы среды выполнения C по категориям