Partilhar via


Funções to

Cada uma das to funções e sua macro associada, se houver, converte um único caractere em outro caractere.

__toascii
tolower, _tolower, towlower
toupper, _toupper, towupper

Comentários

As to funções e conversões de macro são as seguintes.

Rotina Macro Descrição
__toascii __toascii Converte c em caractere ASCII
tolower tolower Converte c em minúscula, se apropriado
_tolower _tolower Converte c em minúscula
towlower Nenhum Converte c em letra minúscula de caractere largo correspondente
toupper toupper Converte c em maiúscula, se apropriado
_toupper _toupper Converte c em maiúscula
towupper Nenhum Converte c em letra maiúscula de caractere largo correspondente

Para usar as versões de função das rotinas que também são definidas como macros, remova as definições de to macro com #undef diretivas ou não inclua CTYPE.H. Se você usar a opção do compilador /Za, o compilador usará a versão da função toupper ou tolower. As declarações das toupper funções e tolower estão em STDLIB.H.

A rotina __toascii define todos, exceto os 7 bits de ordem inferior de c a 0, de forma que o valor convertido represente um caractere no conjunto de caracteres ASCII. Se c já representar um caractere ASCII, c permanecerá inalterado.

As rotinas tolower e toupper:

  • Dependem da categoria LC_CTYPE da localidade atual (tolower chama isupper e toupper chama islower).
  • Convertem c se c representar uma letra conversível do caso apropriado na localidade atual e se o caso oposto existir para essa localidade. Caso contrário, c permanecerá inalterado.

As rotinas _tolower e _toupper:

  • São versões muito mais rápidas, independentes de localidade, de tolower e toupper.
  • Só podem ser usadas quando isascii(c) e isupper(c) ou islower(c), respectivamente, forem diferentes de zero.
  • Ter resultados indefinidos se c não for uma letra ASCII do caso apropriado para conversão.

As funções towlower e towupper retornarão uma cópia convertida de c se ambas as seguintes condições forem diferentes de zero. Caso contrário, c permanecerá inalterado.

  • c é um caractere largo do caso apropriado (ou seja, para o qual iswupper ou iswlower, respectivamente, é diferente de zero).
  • Há um caractere largo correspondente do caso de destino (ou seja, para o qual iswlower ou iswupper, respectivamente, é diferente de zero).

Exemplo

// 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.

Confira também

Conversão de dados
Locale
Rotinas is e isw