Локаль
Языковой стандарт — это настройки страны/региона и языковые настройки, с помощью которых можно настраивать программы. К числу категорий, зависящих от языкового стандарта, относится отображение форматов дат и денежных значений. Дополнительные сведения см. в категориях языкового стандарта.
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 по категориям
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по