to
Функции
Каждая из to
функций и связанного с ней макроса, если таковые есть, преобразует один символ в другой символ.
__toascii
tolower
, , _tolower
towlower
toupper
, , _toupper
towupper
Замечания
Ниже to
приведены функции и преобразования макросов.
Маршрут | Макрос | Description |
---|---|---|
__toascii |
__toascii |
Преобразует c в ASCII символ |
tolower |
tolower |
Преобразует c в нижний регистр при необходимости |
_tolower |
_tolower |
Преобразует c в нижний регистр |
towlower |
нет | Преобразует c в соответствующую букву, представленную расширенным символом нижнего регистра |
toupper |
toupper |
Преобразует c в верхний регистр при необходимости |
_toupper |
_toupper |
Преобразует c в верхний регистр |
towupper |
нет | Преобразует c в соответствующую букву, представленную расширенным символом нижнего регистра |
Чтобы использовать версии to
функций подпрограмм, которые также определены как макросы, удалите определения макросов с #undef
директивами или не включают CTYPE.H
. Если используется параметр компилятора /Za, то компилятор использует функциональную версию toupper
или tolower
. toupper
Объявления и tolower
функции находятся в STDLIB.H
.
Подпрограмма __toascii
устанавливает все, кроме младших 7 бит c
, в 0, поэтому преобразованное значение представляет символ в кодировке ASCII. Если c
уже представляет символ ASCII, c
не изменяется.
Подпрограммы tolower
и toupper
:
- зависят от категории
LC_CTYPE
текущего языкового стандарта (tolower
вызываетisupper
иtoupper
вызываетislower
); - преобразовывают
c
, еслиc
представляет пригодную для преобразования букву соответствующего регистра текущего языкового стандарта и если существует обратный регистр для данного языкового стандарта. В противном случаеc
не изменяется.
Подпрограммы _tolower
и _toupper
:
- представляют собой не зависящие от языкового стандарта, намного более быстрые версии
tolower
и toupper. - Могут использоваться только когда isascii(
c
) и either isupper(c
) или islower(c
), соответственно, отличны от нуля. - Укажите неопределенные результаты, если
c
не является буквой ASCII соответствующего случая для преобразования.
Функции towlower
и towupper
возвращают преобразованную копию c
только в том случае, если выполняются оба приведенных ниже условия. В противном случае c
не изменяется.
c
является расширенным символом соответствующего регистра (т. е. для которогоiswupper
или iswlower, соответственно, не равны нулю).- Существует соответствующий широкий символ целевого дела (т. е. для которого
iswlower
или iswupper соответственно не является ненулевой).
Пример
// crt_toupper.c
/* This program uses toupper and tolower to
* analyze all characters between 0x0 and 0x7F. It also
* applies _toupper and _tolower to any code in this
* range for which these functions make sense.
*/
#include <ctype.h>
#include <string.h>
#include <stdio.h>
char msg[] = "Some of THESE letters are Uppercase.";
char *p;
int main( void )
{
printf( "%s\n", msg );
/* Reverse case of message. */
for( p = msg; p < msg + strlen( msg ); p++ )
{
if( islower( *p ) )
putchar( _toupper( *p ) );
else if( isupper( *p ) )
putchar( _tolower( *p ) );
else
putchar( *p );
}
}
Some of THESE letters are Uppercase.
sOME OF these LETTERS ARE uPPERCASE.