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
chamaisupper
etoupper
chamaislower
). - Convertem
c
sec
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 qualiswupper
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