Языковой стандарт
Языковой стандарт относится к стране/региону и языковым настройкам, с помощью которых можно настраивать программы. К некоторым категориям, зависящим от языкового стандарта, относится отображение форматов дат и денежных значений. Для получения дополнительной информации см. Категории языковых стандартов.
Используйте функцию setlocale для изменения или запроса некоторой или всей информации о языковом стандарте текущей программы или потока при использовании функций без суффикса _l. Функции с суффиксом _l будут использовать параметры языкового стандарта, переданные как информация о языковом стандарте, во время выполнения этой конкретной функции. Для создания языкового стандарта для использования в функции с суффиксом _l, используйте _create_locale. Для освобождения этого языкового стандарта используйте _free_locale. Чтобы получить текущий языковой стандарт, можно использовать _get_current_locale.
Используйте _configthreadlocale для управления тем, имеет ли каждый поток собственный языковой стандарт или все потоки в программе используют тот же языковой стандарт. Дополнительные сведения см. в разделе Языковые стандарты и кодовые страницы.
Более безопасные версии функций доступны в следующей таблице, они отмечены суффиксом _s («безопасность»). Для получения дополнительной информации см. Функции безопасности в CRT.
Зависимые от языковых стандартов процедуры
Подпрограмма |
Применение |
Зависимость параметров категории setlocale |
---|---|---|
Преобразовать символ в значение с плавающей точкой |
LC_NUMERIC |
|
Преобразовать символ к целочисленному значению |
LC_NUMERIC |
|
Преобразовать символ к 64-разрядному целочисленному значению |
LC_NUMERIC |
|
Преобразовать символ к значению long |
LC_NUMERIC |
|
Преобразовать символ к значению double-long |
LC_NUMERIC |
|
Проверить данное целое число на указанное условие. |
LC_CTYPE |
|
Проверить на старший байт |
LC_CTYPE |
|
Прочитать соответствующие значения для форматирования числовых величин |
LC_MONETARY, LC_NUMERIC |
|
Максимальная длина в байтах любого многобайтового символа текущего языкового стандарта (макрос, определенный в STDLIB.H) |
LC_CTYPE |
|
Скопировать один многобайтовый символ |
LC_CTYPE |
|
Проверить и вернуть количество байтов в многобайтовом символе |
LC_CTYPE |
|
Для строк многобайтовой кодировки: проверить каждый символ в строке; вернуть длину строки |
LC_CTYPE |
|
Преобразовать последовательность многобайтовых символов в соответствующую последовательность расширенных символов. |
LC_CTYPE |
|
Преобразовать многобайтовый символ в соответствующий расширенный символ. |
LC_CTYPE |
|
Функции printf |
Записать форматированные выходные данные |
LC_NUMERIC (определяет вывод символа системы счисления) |
Функции scanf |
Прочитать форматированные входные данные |
LC_NUMERIC (определяет распознавание символа системы счисления) |
Выбрать языковой стандарт для программы |
Неприменимо |
|
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 |
Форматировать дату и значения времени в соответствии с предоставленным аргументом 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 |
Преобразовать строку символов в значение double |
LC_NUMERIC (определяет распознавание символа системы счисления) |
|
Преобразовать строку символов в значение long |
LC_NUMERIC (определяет распознавание символа системы счисления) |
|
Преобразовать строку символов в значение 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 |
Преобразовать строку в упорядоченную форму в соответствии с языковым стандартом |
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 |
Преобразуют последовательность расширенных символов в соответствующую последовательность многобайтовых символов |
LC_CTYPE |
|
Преобразовать расширенный символ в соответствующий многобайтовый символ |
LC_CTYPE |
Примечание
Для многобайтовых процедур многобайтовая кодовая страница должна быть эквивалента языковому стандарту, установленному с помощью setlocale._setmbcp с аргументом _MB_CP_LOCALE делает многобайтовую кодовую страницу совпадающей с кодовой страницей setlocale.