to
-Funktionen
Jede der to
Funktionen und das zugehörige Makro konvertiert, falls vorhanden, ein einzelnes Zeichen in ein anderes Zeichen.
__toascii
tolower
, _tolower
towlower
toupper
, _toupper
towupper
Hinweise
Die to
Funktionen und Makrokonvertierungen sind wie folgt:
Routine | Makro | Beschreibung |
---|---|---|
__toascii |
__toascii |
Konvertiert c in ASCII-Zeichen |
tolower |
tolower |
Konvertiert c gegebenenfalls in Kleinbuchstaben |
_tolower |
_tolower |
Konvertiert c in Kleinbuchstaben |
towlower |
Keine | Konvertiert c in entsprechende Breitzeichen-Kleinbuchstaben |
toupper |
toupper |
Konvertiert c gegebenenfalls in Großbuchstaben |
_toupper |
_toupper |
Konvertiert c in Großbuchstaben |
towupper |
Keine | Konvertiert c in entsprechende Breitzeichen-Kleinbuchstaben |
Wenn Sie die Funktionsversionen der Routinen verwenden möchten, die to
auch als Makros definiert sind, entfernen Sie entweder die Makrodefinitionen mit #undef
Direktiven, oder schließen Sie sie nicht ein CTYPE.H
. Wenn Sie die Compileroption /Za wählen, verwendet der Compiler die Funktionsversion von toupper
oder tolower
. Deklarationen und toupper
tolower
Funktionen befinden sich in STDLIB.H
.
Die Routine __toascii
setzt alle außer die unteren 7 Bits von c
auf 0, damit der konvertierte Wert ein Zeichen im ASCII-Zeichensatz darstellt. Wenn c
bereits ein ASCII-Zeichen darstellt, bleibt c
unverändert.
Die Routinen tolower
und toupper
:
- Hängen von der Kategorie
LC_CTYPE
des aktuellen Gebietsschemas ab (tolower
ruftisupper
auf undtoupper
ruftislower
auf). - Konvertieren
c
, wennc
einen konvertierbaren Buchstaben des entsprechenden Falls im aktuellen Gebietsschema darstellt und der entgegengesetzte Fall für dieses Gebietsschema vorhanden ist. Andernfalls bleibtc
unverändert.
Die Routinen _tolower
und _toupper
:
- Sind vom Gebietsschema unabhängige, viel schnellere Versionen von
tolower
und . - Können nur verwendet werden, wenn isascii(
c
) und entweder isupper(c
) oder islower(c
) ungleich null sind. - Sie haben nicht definierte Ergebnisse, wenn
c
es sich nicht um einen ASCII-Buchstaben des entsprechenden Falls für die Konvertierung handelt.
Die Funktionen towlower
und towupper
geben nur eine konvertierte Kopie von c
zurück, wenn beide der folgenden Bedingungen ungleich null sind. Andernfalls bleibt c
unverändert.
c
ist ein Breitzeichen des entsprechenden Falls (d.h. für dasiswupper
oder iswlower ungleich null ist).- Es gibt ein entsprechendes breites Zeichen des Zielfalls (d. a. für die
iswlower
bzw . die iswupper nicht zero ist).
Beispiel
// 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.