Funzioni to
Ognuna delle funzioni to e della macro associate, se presenti, converte un singolo carattere in un altro carattere.
|
Note
Le funzioni to e le conversioni macro sono indicati di seguito.
Routine |
Macro |
Descrizione |
---|---|---|
__toascii |
__toascii |
Converte c in un carattere ASCII |
tolower |
tolower |
Converte c, se necessario, in minuscolo |
_tolower |
_tolower |
Converte c in minuscolo |
towlower |
None |
Converte c nel corrispondente carattere wide in minuscolo |
toupper |
toupper |
Converte c, se necessario, in maiuscolo |
_toupper |
_toupper |
Converte c in maiuscolo |
towupper |
None |
Converte c nel corrispondente carattere wide in maiuscolo |
Per utilizzare le versioni di funzione delle routine to definite anche come macro, rimuovere le definizioni di macro con le direttive #undef o non includere CTYPE.H. Se si utilizza l'opzione del compilatore /Za, il compilatore utilizza la versione di funzione di toupper o di tolower. Le dichiarazioni delle funzioni di tolower e di toupper sono in STDLIB.H.
La routine di __toascii imposta tutti i 7 bit meno significativi di c su 0, in modo che il valore convertito rappresenti un carattere del set di caratteri ASCII. Se c rappresenta già un carattere ASCII, c resta invariato.
Le routine toupper e tolower :
Sono dipendenti dalla categoria LC_CTYPE delle impostazioni locali correnti (tolower chiama isupper e toupper chiama islower).
Convertire c se c rappresenta una lettera convertibile nell'appropriato minuscolo/maiuscolo nelle impostazioni locali correnti e esiste il caso opposto per tali impostazioni. In caso contrario, c resta invariato.
Le routine _toupper e _tolower :
Sono indipendenti dalle impostazioni locali, le versioni molto più veloci di tolower e toupper.
Possono essere utilizzate solo quando isascii(c) e isupper(c) o islower(c), sono, rispettivamente, diverse da zero.
Si ottengono risultati indefiniti se c non è un carattere alfabetico ASCII maiuscolo/minuscolo appropriato per la conversione.
Le funzioni towupper e towlower restituiscono una copia convertita di c se e solo se entrambe le condizioni seguenti sono diverse da zero. In caso contrario, c resta invariato.
c è un tipo di carattere maiuscolo/minuscolo appropriato (ovvero per il quale iswupper o iswlower, rispettivamente, sono diverse da zero).
È presente un carattere di tipo wide corrispondente per la destinazione maiuscolo/minuscolo (ovvero per il quale iswlower o iswupper, rispettivamente, sono diverse da zero).
Esempio
// 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>
char msg[] = "Some of THESE letters are Capitals.";
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 );
}
}