Scroll to navigation

toupper(3) Library Functions Manual toupper(3)

ИМЯ

toupper, tolower, toupper_l, tolower_l - преобразуют регистр символов

БИБЛИОТЕКА

Стандартная библиотека языка C (libc, -lc)

СИНТАКСИС

#include <ctype.h>
int toupper(int c);
int tolower(int c);
int toupper_l(int c, locale_t locale);
int tolower_l(int c, locale_t locale);

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

toupper_l(), tolower_l():


Начиная с glibc 2.10:
_XOPEN_SOURCE >= 700
До glibc 2.10:
_GNU_SOURCE

ОПИСАНИЕ

Эти функции преобразуют строчные символы в заглавные и наоборот.

Если c — строчная буква, то toupper() возвращает её заглавный эквивалент, если он есть в текущей локали. В противном случае возвращается c. Функция toupper_l() выполняет ту же задачу, но использует локаль, на которую ссылается описатель локали locale.

Если c — заглавная буква, то tolower() возвращает её строчный эквивалент, если он есть в текущей локали. В противном случае возвращается c. Функция tolower_l() выполняет ту же задачу, но использует локаль, на которую ссылается описатель локали locale.

Если c имеет значение не типа unsigned char или не равно EOF, то поведение этих функций не определено.

Поведение toupper_l() и tolower_l() не определено, если значение locale равно специальному объекту локали LC_GLOBAL_LOCALE (смотрите duplocale(3)) или некорректному описателю объекта локали.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

Возвращаемым значением является преобразованная буква или c, если преобразование невозможно.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).

Интерфейс Атрибут Значение
toupper(), tolower(), toupper_l(), tolower_l() Безвредность в нитях MT-Safe

СТАНДАРТЫ

toupper(), tolower(): C99, 4.3BSD, POSIX.1-2001, POSIX.1-2008.

toupper_l(), tolower_l(): POSIX.1-2008.

ПРИМЕЧАНИЯ

Стандартами требуется, что аргумент c этих функций равнялся EOF или значению, которое представимо типом unsigned char. Если аргумент c имеет тип char, то он должен приводиться к unsigned char как в следующем примере:


char c;
...
res = toupper((unsigned char) c);

Это необходимо, так как char может быть эквивалентен signed char, и если у байта установлен старший знаковый бит, то он учитывается при приведении к int и байт превращается в значение, выходящее за границу unsigned char.

Особенности подстановки строчных и прописных букв зависят от локали. Например, в локали по умолчанию "C" ничего не сказано про умляуты, поэтому они не преобразовываются.

В некоторых не английских локалях существуют строчные буквы без заглавного аналога; например немецкая sharp.

СМОТРИТЕ ТАКЖЕ

isalpha(3), newlocale(3), setlocale(3), towlower(3), towupper(3), uselocale(3), locale(7)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.

29 декабря 2022 г. Справочные страницы Linux 6.03