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 None Konvertiert c in entsprechende Breitzeichen-Kleinbuchstaben
toupper toupper Konvertiert c gegebenenfalls in Großbuchstaben
_toupper _toupper Konvertiert c in Großbuchstaben
towupper None 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 touppertolower 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 ruft isupper auf und toupper ruft islower auf).
  • Konvertieren c, wenn c einen konvertierbaren Buchstaben des entsprechenden Falls im aktuellen Gebietsschema darstellt und der entgegengesetzte Fall für dieses Gebietsschema vorhanden ist. Andernfalls bleibt c 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 das iswupper 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.

Siehe auch

Datenkonvertierung
Locale
is, isw Routinen