Поделиться через


toФункции

Каждая из to функций и связанного с ней макроса, если таковые есть, преобразует один символ в другой символ.

__toascii
tolower, _tolower, towlower
toupper, _toupper, towupper

Замечания

Ниже to приведены функции и преобразования макросов.

Маршрут Макрос Description
__toascii __toascii Преобразует c в ASCII символ
tolower tolower Преобразует c в нижний регистр при необходимости
_tolower _tolower Преобразует c в нижний регистр
towlower None Преобразует c в соответствующую букву, представленную расширенным символом нижнего регистра
toupper toupper Преобразует c в верхний регистр при необходимости
_toupper _toupper Преобразует c в верхний регистр
towupper None Преобразует 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.

См. также

Преобразование данных
Locale
is, isw подпрограммы