Локаль
Языковой стандарт — это настройки страны/региона и языковые настройки, с помощью которых можно настраивать программы. К числу категорий, зависящих от языкового стандарта, относится отображение форматов дат и денежных значений. Дополнительные сведения см. в категориях языкового стандарта.
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_l _atoldbl _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_l _mbslen _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 _strcoll_l _mbscoll _wcscoll_l ,_mbscoll_l |
Сравнить символы двух строк | LC_COLLATE |
_stricmp , , _wcsicmp _stricmp_l _mbsicmp _wcsicmp_l ,_mbsicmp_l |
Сравнить две строки без учета регистра | LC_CTYPE |
_stricoll , , _wcsicoll _stricoll_l _mbsicoll _wcsicoll_l ,_mbsicoll_l |
Сравнить символы двух строк (регистр не учитывается) | LC_COLLATE |
_strncoll , , _wcsncoll _strncoll_l _mbsncoll _wcsncoll_l ,_mbsncoll_l |
Сравнить первые n символов двух строк. |
LC_COLLATE |
_strnicmp , , _wcsnicmp _strnicmp_l _mbsnicmp _wcsnicmp_l ,_mbsnicmp_l |
Сравнить символы двух строк без учета регистра. | LC_CTYPE |
_strnicoll , , _wcsnicoll _strnicoll_l _mbsnicoll _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 по категориям