Freigeben über


ctype-Klasse

Eine Klasse, die ein Facet bereitstellt, das verwendet wird, um Zeichen zu klassifizieren, zwischen Groß- und Kleinbuchstaben zu wechseln und zwischen dem systemeigenen Zeichensatz und dem vom Gebietsschema verwendeten Zeichensatz zu konvertieren.

Syntax

template <class CharType>
class ctype : public ctype_base;

Parameter

Chartype
Der Typ, der innerhalb eines Programms verwendet wird, um Zeichen zu codieren.

Hinweise

Wie bei jedem Gebietsschemafacet hat die statische Objekt-ID einen anfänglichen gespeicherten Wert von NULL. Beim ersten Versuch, auf den gespeicherten Wert zuzugreifen, wird ein eindeutiger positiver Wert in id gespeichert. Für Klassifizierungskriterien wird ein geschachtelter Bitmaskentyp in der ctype_base-Basisklasse bereitgestellt.

Die C++-Standardbibliothek definiert zwei explizite Spezialisierungen dieser Klassenvorlage:

  • ctype<char>, eine explizite Spezialisierung, deren Unterschiede separat beschrieben werden. Weitere Informationen finden Sie unter ctype<char> "Klasse".

  • ctype<wchar_t>, die Elemente als breite Zeichen behandelt.

Andere Spezialisierungen der Klassenvorlage ctype<CharType>:

  • Wandeln Sie einen Wert vom Typ CharType in einen Typ char mit dem Ausdruck (char)chum.

  • Konvertieren Eines Wertbytes vom Typ char in einen Wert vom Typ CharType mit dem Ausdruck CharType(byte).

Alle anderen Vorgänge werden auf die gleiche Weise wie für die explizite Spezialisierung ctype<char>für char Werte ausgeführt.

Konstruktoren

Konstruktor Beschreibung
ctype Konstruktor für Objekte der Klasse ctype, die als Gebietsschemafacets für Zeichen dienen.

TypeDefs

Typname Beschreibung
char_type Ein Typ, der ein Zeichen beschreibt, das von einem Gebietsschema verwendet wird.

Memberfunktionen

Memberfunktion Beschreibung
do_is Eine virtuelle Funktion, die aufgerufen wird, um zu testen, ob ein einzelnes Zeichen über ein bestimmtes Attribut verfügt, oder die Attribute jedes Zeichens in einem Bereich klassifiziert und in einem Array speichert.
do_narrow Eine virtuelle Funktion, die aufgerufen wird, um ein Zeichen vom Typ CharType, das von einem Gebietsschema verwendet wird, in das entsprechende Zeichen vom Typ char im systemeigenen Zeichensatz zu konvertieren.
do_scan_is Eine virtuelle Funktion, die aufgerufen wird, um das erste Zeichen in einem Bereich zu suchen, der einer angegebenen Maske entspricht.
do_scan_not Eine virtuelle Funktion, die aufgerufen wird, um das erste Zeichen in einem Bereich zu suchen, der einer angegebenen Maske nicht entspricht.
do_tolower Eine virtuelle Funktion, die aufgerufen wird, um ein Zeichen oder einen Zeichenbereich in Kleinbuchstaben umzuwandeln.
do_toupper Eine virtuelle Funktion, die aufgerufen wird, um ein Zeichen oder einen Zeichenbereich in Großbuchstaben umzuwandeln.
do_widen Eine virtuelle Funktion, die aufgerufen wird, um ein Zeichen vom Typ char im systemeigenen Zeichensatz in das entsprechende Zeichen vom Typ CharType, das von einem Gebietsschema verwendet wird, zu konvertieren.
is Testet, ob ein einzelnes Zeichen über ein bestimmtes Attribut verfügt, oder klassifiziert die Attribute jedes Zeichens in einem Bereich und speichert sie in einem Array.
narrow Konvertiert ein Zeichen vom Typ CharType, das von einem Gebietsschema verwendet wird, in das entsprechende Zeichen vom Typ "char" im systemeigenen Zeichensatz.
scan_is Sucht das erste Zeichen in einem Bereich, der einer bestimmten Maske entspricht.
scan_not Sucht das erste Zeichen in einem Bereich, der einer bestimmten Maske nicht entspricht.
tolower Konvertiert ein Zeichen oder einen Zeichenbereich in Kleinbuchstaben.
toupper Konvertiert ein Zeichen oder einen Zeichenbereich in Großbuchstaben.
widen Konvertiert ein Zeichen vom Typ char im systemeigenen Zeichensatz in das entsprechende Zeichen vom Typ CharType, das von einem Gebietsschema verwendet wird.

Anforderungen

Header:<locale>

Namespace: std

ctype::char_type

Ein Typ, der ein Zeichen beschreibt, das von einem Gebietsschema verwendet wird.

typedef CharType char_type;

Hinweise

Der Typ stellt ein Synonym für den Vorlagenparameter CharType dar.

Beispiel

Ein Beispiel für die Verwendung von char_type als Rückgabewert finden Sie unter der Memberfunktion widen.

ctype::ctype

Konstruktor für Objekte der Klasse ctype, die als Gebietsschemafacets für Zeichen dienen.

explicit ctype(size_t _Refs = 0);

Parameter

_Refs
Integerwert, der zum Angeben des Speicherverwaltungstyps für das Objekt verwendet wird.

Hinweise

Die möglichen Werte für den _Refs Parameter und deren Bedeutung sind:

  • 0: Die Lebensdauer des Objekts wird von den Gebietsschemas verwaltet, in denen es enthalten ist.

  • 1: Die Lebensdauer des Objekts muss manuell verwaltet werden.

  • > 1: Diese Werte sind nicht definiert.

Direkte Beispiele hierfür sind nicht möglich, da der Destruktor geschützt ist.

Der Konstruktor initialisiert das entsprechende locale::facet-Basisobjekt mit locale::facet( _Refs).

ctype::d o_is

Eine virtuelle Funktion, die aufgerufen wird, um zu testen, ob ein einzelnes Zeichen über ein bestimmtes Attribut verfügt, oder die Attribute jedes Zeichens in einem Bereich klassifiziert und in einem Array speichert.

virtual bool do_is(
    mask maskVal,
    CharType ch) const;

virtual const CharType *do_is(
    const CharType* first,
    const CharType* last,
    mask* dest) const;

Parameter

maskVal
Der Maskenwert, für den das Zeichen getestet werden soll.

Ch
Das Zeichen, dessen Attribute getestet werden sollen.

first
Ein Zeiger auf das erste Zeichen in einem Bereich, dessen Attribute klassifiziert werden sollen.

last
Ein Zeiger auf das Zeichen direkt nach dem letzten Zeichen in dem Bereich, dessen Attribute klassifiziert werden sollen.

dest
Ein Zeiger auf eine Stelle am Anfang des Arrays, an der die Maskenwerte, die die Attribute der einzelnen Zeichen beschreiben, gespeichert werden sollen.

Rückgabewert

Die erste Memberfunktion gibt einen booleschen Wert zurück, der lautet, wenn das getestete Zeichen das attribut hat, das durch den Maskenwert beschrieben wird. Wenn das Attribut nicht vorhanden ist.The first member function returns a Boolean value that is true if the character test has the attribute described by the mask value; false if it fails to have the attribute.

Die zweite Memberfunktion gibt ein Array mit den Maskenwerten zurück, mit denen die Attribute der einzelnen Zeichen im Bereich beschrieben werden.

Hinweise

Die Maskenwerte, mit denen die Attribute der Zeichen beschrieben werden, werden von der ctype_base-Klasse bereitgestellt, von der ctype abgeleitet wird. Die erste Memberfunktion kann Ausdrücke für den ersten Parameter akzeptieren, der als Bitmasken bezeichnet wird und aus der Kombination von Maskenwerten durch die bitweisen Operatoren (|, &, , ^) ~gebildet wird.

Beispiel

Siehe das Beispiel für is, mit dem do_is aufgerufen wird.

ctype::d o_narrow

Eine virtuelle Funktion, die aufgerufen wird, um ein Zeichen vom Typ CharType, das von einem Gebietsschema verwendet wird, in das entsprechende Zeichen vom Typ char im systemeigenen Zeichensatz zu konvertieren.

virtual char do_narrow(
    CharType ch,
    char default = '\0') const;

virtual const CharType* do_narrow(
    const CharType* first,
    const CharType* last,
    char default,
    char* dest) const;

Parameter

Ch
Das zu konvertierende Zeichen vom Typ Chartype, das vom Gebietsschema verwendet wird.

default
Der Standardwert, der von der Memberfunktion Zeichen vom Typ CharType zugewiesen werden soll, für die keine entsprechenden Zeichen vom Typ char vorhanden sind.

first
Ein Zeiger auf das erste Zeichen in dem Bereich, in dem Zeichen konvertiert werden sollen.

last
Ein Zeiger auf das Zeichen direkt nach dem letzten Zeichen in dem Bereich, in dem Zeichen konvertiert werden sollen.

dest
Ein const-Zeiger auf das erste Zeichen vom Typ char in dem Zielbereich, in dem der konvertierte Zeichenbereich gespeichert wird.

Rückgabewert

Die erste geschützte Memberfunktion gibt das systemeigene Zeichen des Typzeichens zurück, das dem Parameterzeichen des Typs CharType oder der Standardeinstellung entspricht, wenn kein Gegenstück definiert ist.

Die zweite geschützte Memberfunktion gibt einen Zeiger auf den Zielbereich mit nativen Zeichen zurück, die aus Zeichen vom Typ CharType konvertiert wurden.

Hinweise

Die zweite geschützte Membervorlagenfunktion speichert in dest[ I] den Wert do_narrow( first [ I], default), für I das Intervall [0, last - first).

Beispiel

Siehe das Beispiel für narrow, mit dem do_narrow aufgerufen wird.

ctype::d o_scan_is

Eine virtuelle Funktion, die aufgerufen wird, um das erste Zeichen in einem Bereich zu suchen, der einer angegebenen Maske entspricht.

virtual const CharType *do_scan_is(
    mask maskVal,
    const CharType* first,
    const CharType* last) const;

Parameter

maskVal
Der Maskenwert, mit dem ein Zeichen übereinstimmen soll.

first
Ein Zeiger auf das erste Zeichen in dem Bereich, in dem gesucht werden soll.

last
Ein Zeiger auf das Zeichen direkt nach dem letzten Zeichen in dem Bereich, in dem gesucht werden soll.

Rückgabewert

Ein Zeiger auf das erste Zeichen in einem Bereich, der einer bestimmten Maske entspricht. Wenn kein solcher Wert vorhanden ist, gibt die Funktion den letzten Wert zurück.

Hinweise

Die geschützte Memberfunktion gibt den kleinsten Zeiger ptr im Bereich [ first, last) zurück, für den do_is( maskVal, * ptr) wahr ist.

Beispiel

Siehe das Beispiel für scan_is, mit dem do_scan_is aufgerufen wird.

ctype::d o_scan_not

Eine virtuelle Funktion, die aufgerufen wird, um das erste Zeichen in einem Bereich zu suchen, der einer angegebenen Maske nicht entspricht.

virtual const CharType *do_scan_not(
    mask maskVal,
    const CharType* first,
    const CharType* last) const;

Parameter

maskVal
Der Maskenwert, mit dem ein Zeichen nicht übereinstimmen soll.

first
Ein Zeiger auf das erste Zeichen in dem Bereich, in dem gesucht werden soll.

last
Ein Zeiger auf das Zeichen direkt nach dem letzten Zeichen in dem Bereich, in dem gesucht werden soll.

Rückgabewert

Ein Zeiger auf das erste Zeichen in einem Bereich, der einer bestimmten Maske nicht entspricht. Wenn kein solcher Wert vorhanden ist, gibt die Funktion den letzten Wert zurück.

Hinweise

Die geschützte Memberfunktion gibt den kleinsten Zeiger ptr im Bereich [ first, last) zurück, für den do_is( maskVal, * ptr) falsch ist.

Beispiel

Siehe das Beispiel für scan_not, mit dem do_scan_not aufgerufen wird.

ctype::d o_tolower

Eine virtuelle Funktion, die aufgerufen wird, um ein Zeichen oder einen Zeichenbereich in Kleinbuchstaben umzuwandeln.

virtual CharType do_tolower(CharType ch) const;

virtual const CharType *do_tolower(
    CharType* first,
    const CharType* last) const;

Parameter

Ch
Das Zeichen, das in einen Kleinbuchstaben umgewandelt werden soll.

first
Ein Zeiger auf das erste Zeichen in dem Zeichenbereich, in dem die Zeichen in Groß- bzw. Kleinbuchstaben umgewandelt werden sollen.

last
Ein Zeiger auf das Zeichen direkt nach dem letzten Zeichen in dem Zeichenbereich, in dem die Zeichen in Groß- bzw. Kleinbuchstaben umgewandelt werden sollen.

Rückgabewert

Die erste geschützte Memberfunktion gibt die Kleinschreibung des Parameters ch zurück. Wenn kein Kleinbuchstaben vorhanden ist, wird ch zurückgegeben. Die zweite geschützte Memberfunktion gibt zuletzt zurück.

Hinweise

Die zweite geschützte Elementvorlagenfunktion ersetzt jedes Element first [ ], für I das Intervall [0,first - last ] durch do_tolower( first [ I]). I

Beispiel

Siehe das Beispiel für tolower, mit dem do_tolower aufgerufen wird.

ctype::d o_toupper

Eine virtuelle Funktion, die aufgerufen wird, um ein Zeichen oder einen Zeichenbereich in Großbuchstaben umzuwandeln.

virtual CharType do_toupper(CharType ch) const;

virtual const CharType *do_toupper(
    CharType* first,
    const CharType* last) const;

Parameter

Ch
Das Zeichen, das in einen Großbuchstaben umgewandelt werden soll.

first
Ein Zeiger auf das erste Zeichen in dem Zeichenbereich, in dem die Zeichen in Groß- bzw. Kleinbuchstaben umgewandelt werden sollen.

last
Ein Zeiger auf das Zeichen direkt nach dem letzten Zeichen in dem Zeichenbereich, in dem die Zeichen in Groß- bzw. Kleinbuchstaben umgewandelt werden sollen.

Rückgabewert

Die erste geschützte Memberfunktion gibt die Großbuchstabenform des Parameters ch zurück. Wenn kein Großbuchstaben vorhanden ist, wird ch zurückgegeben. Die zweite geschützte Memberfunktion gibt zuletzt zurück.

Hinweise

Die zweite geschützte Elementvorlagenfunktion ersetzt jedes Element first [ ], für I das Intervall [0,first - last ] durch do_toupper( first [ I]). I

Beispiel

Siehe das Beispiel für toupper, mit dem do_toupper aufgerufen wird.

ctype::d o_widen

Eine virtuelle Funktion, die aufgerufen wird, um ein Zeichen vom Typ char im systemeigenen Zeichensatz in das entsprechende Zeichen vom Typ CharType, das von einem Gebietsschema verwendet wird, zu konvertieren.

virtual CharType do_widen(char byte) const;

virtual const char *do_widen(
    const char* first,
    const char* last,
    CharType* dest) const;

Parameter

Byte
Das Zeichen vom Typ char im nativen Zeichensatz, das umgewandelt werden soll.

first
Ein Zeiger auf das erste Zeichen in dem Bereich, in dem Zeichen konvertiert werden sollen.

last
Ein Zeiger auf das Zeichen direkt nach dem letzten Zeichen in dem Bereich, in dem Zeichen konvertiert werden sollen.

dest
Ein Zeiger auf das erste Zeichen vom Typ CharType in dem Zielbereich, in dem der konvertierte Zeichenbereich gespeichert wird.

Rückgabewert

Die erste geschützte Memberfunktion gibt das Zeichen vom Typ CharType zurück, das dem Parameterzeichen vom nativen Typ char entspricht.

Die zweite geschützte Memberfunktion gibt einen Zeiger auf den Zielbereich mit von einem Gebietsschema verwendeten Zeichen vom Typ CharType zurück, die aus nativen Zeichen vom Typ char konvertiert wurden.

Hinweise

Die zweite geschützte Membervorlagenfunktion speichert in dest[ I] den Wert do_widen( first[ I]), wobei I im Intervall [0, last - first] liegen muss.

Beispiel

Siehe das Beispiel für widen, mit dem do_widen aufgerufen wird.

ctype::is

Testet, ob ein einzelnes Zeichen über ein bestimmtes Attribut verfügt, oder klassifiziert die Attribute jedes Zeichens in einem Bereich und speichert sie in einem Array.

bool is(mask maskVal, CharType ch) const;

const CharType *is(
    const CharType* first,
    const CharType* last,
    mask* dest) const;

Parameter

maskVal
Der Maskenwert, für den das Zeichen getestet werden soll.

Ch
Das Zeichen, dessen Attribute getestet werden sollen.

first
Ein Zeiger auf das erste Zeichen in einem Bereich, dessen Attribute klassifiziert werden sollen.

last
Ein Zeiger auf das Zeichen direkt nach dem letzten Zeichen in dem Bereich, dessen Attribute klassifiziert werden sollen.

dest
Ein Zeiger auf eine Stelle am Anfang des Arrays, an der die Maskenwerte, die die Attribute der einzelnen Zeichen beschreiben, gespeichert werden sollen.

Rückgabewert

Die erste Memberfunktion gibt true zurück, wenn das getestete Zeichen das vom Maskenwert beschriebene Attribut aufweist, und false, wenn er das Attribut nicht aufweist.

Die zweite Memberfunktion gibt einen Zeiger auf das letzte Zeichen in dem Bereich zurück, dessen Attribute klassifiziert werden sollen.

Hinweise

Die Maskenwerte, mit denen die Attribute der Zeichen beschrieben werden, werden von der ctype_base-Klasse bereitgestellt, von der ctype abgeleitet wird. Die erste Memberfunktion kann Ausdrücke für den ersten Parameter akzeptieren, der als Bitmasken bezeichnet wird und aus der Kombination von Maskenwerten durch die bitweisen Operatoren (|, &, , ^) ~gebildet wird.

Beispiel

// ctype_is.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main() {
   locale loc1 ( "German_Germany" ), loc2 ( "English_Australia" );

   if (use_facet<ctype<char> > ( loc1 ).is( ctype_base::alpha, 'a' ))
      cout << "The character 'a' in locale loc1 is alphabetic."
           << endl;
   else
      cout << "The character 'a' in locale loc1 is not alphabetic."
           << endl;

   if (use_facet<ctype<char> > ( loc2 ).is( ctype_base::alpha, '!' ))
      cout << "The character '!' in locale loc2 is alphabetic."
           << endl;
   else
      cout << "The character '!' in locale loc2 is not alphabetic."
           << endl;

   char *string = "Hello, my name is John!";
   ctype<char>::mask maskarray[30];
   use_facet<ctype<char> > ( loc2 ).is(
      string, string + strlen(string), maskarray );
   for (unsigned int i = 0; i < strlen(string); i++) {
      cout << string[i] << ": "
           << (maskarray[i] & ctype_base::alpha  "alpha"
                                                : "not alpha")
           << endl;;
   };
}

ctype::narrow

Konvertiert von einem Gebietsschema verwendete Zeichen vom Typ CharType in die entsprechenden Zeichen vom Typ char im nativen Zeichensatz.

char narrow(CharType ch, char default = '\0') const;

const CharType* narrow(
    const CharType* first,
    const CharType* last,
    char default,
    char* dest) const;

Parameter

Ch
Das zu konvertierende Zeichen vom Typ Chartype, das vom Gebietsschema verwendet wird.

default
Der Standardwert, der von der Memberfunktion Zeichen vom Typ CharType zugewiesen werden soll, für die keine entsprechenden Zeichen vom Typ char vorhanden sind.

first
Ein Zeiger auf das erste Zeichen in dem Bereich, in dem Zeichen konvertiert werden sollen.

last
Ein Zeiger auf das Zeichen direkt nach dem letzten Zeichen in dem Bereich, in dem Zeichen konvertiert werden sollen.

dest
Ein const-Zeiger auf das erste Zeichen vom Typ char in dem Zielbereich, in dem der konvertierte Zeichenbereich gespeichert wird.

Rückgabewert

Wenn keine Entsprechung definiert wurde, gibt die erste Memberfunktion das native Zeichen vom Typ char zurück, das dem Parameterzeichen vom Typ CharType default entspricht.

Die zweite Memberfunktion gibt einen Zeiger auf den Zielbereich mit nativen Zeichen zurück, die aus Zeichen vom Typ CharType konvertiert wurden.

Hinweise

Die erste Memberfunktion gibt do_narrow(ch, default) zurück. Die zweite Memberfunktion gibt do_narrow (first, last, , default). dest Nur für die Basisquellzeichen ist sichergestellt, dass ein eindeutiges inverses CharType-Bild unter narrow vorhanden ist. Für diese Basisquellzeichen gilt folgende Invariante: narrow ( widen ( c ), 0 ) == c.

Beispiel

// ctype_narrow.cpp
// compile with: /EHsc /W3
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "english" );
   wchar_t *str1 = L"\x0392fhello everyone";
   char str2 [16];
   bool result1 = (use_facet<ctype<wchar_t> > ( loc1 ).narrow
      ( str1, str1 + wcslen(str1), 'X', &str2[0] ) != 0);  // C4996
   str2[wcslen(str1)] = '\0';
   wcout << str1 << endl;
   cout << &str2[0] << endl;
}
Xhello everyone

ctype::scan_is

Sucht das erste Zeichen in einem Bereich, der einer bestimmten Maske entspricht.

const CharType *scan_is(
    mask maskVal,
    const CharType* first,
    const CharType* last) const;

Parameter

maskVal
Der Maskenwert, mit dem ein Zeichen übereinstimmen soll.

first
Ein Zeiger auf das erste Zeichen in dem Bereich, in dem gesucht werden soll.

last
Ein Zeiger auf das Zeichen direkt nach dem letzten Zeichen in dem Bereich, in dem gesucht werden soll.

Rückgabewert

Ein Zeiger auf das erste Zeichen in einem Bereich, der einer bestimmten Maske entspricht. Wenn kein solcher Wert vorhanden ist, gibt die Funktion den letzten Wert zurück.

Hinweise

Die Memberfunktion gibt do_scan_is(, , lastfirst) zurück.maskVal

Beispiel

// ctype_scan_is.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "German_Germany" );

   char *string = "Hello, my name is John!";

   const char* i = use_facet<ctype<char> > ( loc1 ).scan_is
      ( ctype_base::punct, string, string + strlen(string) );
   cout << "The first punctuation is \"" << *i << "\" at position: "
      << i - string << endl;
}
The first punctuation is "," at position: 5

ctype::scan_not

Sucht das erste Zeichen in einem Bereich, der einer bestimmten Maske nicht entspricht.

const CharType *scan_not(
    mask maskVal,
    const CharType* first,
    const CharType* last) const;

Parameter

maskVal
Der Maskenwert, mit dem ein Zeichen nicht übereinstimmen soll.

first
Ein Zeiger auf das erste Zeichen in dem Bereich, in dem gesucht werden soll.

last
Ein Zeiger auf das Zeichen direkt nach dem letzten Zeichen in dem Bereich, in dem gesucht werden soll.

Rückgabewert

Ein Zeiger auf das erste Zeichen in einem Bereich, der einer bestimmten Maske nicht entspricht. Wenn kein solcher Wert vorhanden ist, gibt die Funktion den letzten Wert zurück.

Hinweise

Die Memberfunktion gibt do_scan_not(maskVal, first, last) zurück.

Beispiel

// ctype_scan_not.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "German_Germany" );

   char *string = "Hello, my name is John!";

   const char* i = use_facet<ctype<char> > ( loc1 ).scan_not
      ( ctype_base::alpha, string, string + strlen(string) );
   cout << "First nonalpha character is \"" << *i << "\" at position: "
      << i - string << endl;
}
First nonalpha character is "," at position: 5

ctype::tolower

Konvertiert ein Zeichen oder einen Zeichenbereich in Kleinbuchstaben.

CharType tolower(CharType ch) const;

const CharType *tolower(CharType* first, const CharType* last) const;

Parameter

Ch
Das Zeichen, das in einen Kleinbuchstaben umgewandelt werden soll.

first
Ein Zeiger auf das erste Zeichen in dem Zeichenbereich, in dem die Zeichen in Groß- bzw. Kleinbuchstaben umgewandelt werden sollen.

last
Ein Zeiger auf das Zeichen direkt nach dem letzten Zeichen in dem Zeichenbereich, in dem die Zeichen in Groß- bzw. Kleinbuchstaben umgewandelt werden sollen.

Rückgabewert

Die erste Memberfunktion gibt die Kleinschreibung des Parameters ch zurück. Wenn kein Kleinbuchstaben vorhanden ist, wird ch zurückgegeben.

Die zweite Memberfunktion gibt den letzten Wert zurück.

Hinweise

Die erste Memberfunktion gibt do_tolower(ch) zurück. Die zweite Memberfunktion gibt do_tolower(first, last) zurück.

Beispiel

// ctype_tolower.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "German_Germany" );

   char string[] = "HELLO, MY NAME IS JOHN";

   use_facet<ctype<char> > ( loc1 ).tolower
      ( string, string + strlen(string) );
   cout << "The lowercase string is: " << string << endl;
}
The lowercase string is: hello, my name is john

ctype::toupper

Konvertiert ein Zeichen oder einen Zeichenbereich in Großbuchstaben.

CharType toupper(CharType ch) const;
const CharType *toupper(CharType* first, const CharType* last) const;

Parameter

Ch
Das Zeichen, das in einen Großbuchstaben umgewandelt werden soll.

first
Ein Zeiger auf das erste Zeichen in dem Zeichenbereich, in dem die Zeichen in Groß- bzw. Kleinbuchstaben umgewandelt werden sollen.

last
Ein Zeiger auf das Zeichen direkt nach dem letzten Zeichen in dem Zeichenbereich, in dem die Zeichen in Groß- bzw. Kleinbuchstaben umgewandelt werden sollen.

Rückgabewert

Die erste Memberfunktion gibt die Großbuchstabenform des Parameters ch zurück. Wenn kein Großbuchstaben vorhanden ist, wird ch zurückgegeben.

Die zweite Memberfunktion gibt den letzten Wert zurück.

Hinweise

Die erste Memberfunktion gibt do_toupper(ch) zurück. Die zweite Memberfunktion gibt do_toupper( first, last) zurück.

Beispiel

// ctype_toupper.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "German_Germany" );

   char string[] = "Hello, my name is John";

   use_facet<ctype<char> > ( loc1 ).toupper
      ( string, string + strlen(string) );
   cout << "The uppercase string is: " << string << endl;
}
The uppercase string is: HELLO, MY NAME IS JOHN

ctype::widen

Konvertiert ein Zeichen vom Typ char im systemeigenen Zeichensatz in das entsprechende Zeichen vom Typ CharType, das von einem Gebietsschema verwendet wird.

CharType widen(char byte) const;
const char *widen(const char* first, const char* last, CharType* dest) const;

Parameter

Byte
Das Zeichen vom Typ char im nativen Zeichensatz, das umgewandelt werden soll.

first
Ein Zeiger auf das erste Zeichen in dem Bereich, in dem Zeichen konvertiert werden sollen.

last
Ein Zeiger auf das Zeichen direkt nach dem letzten Zeichen in dem Bereich, in dem Zeichen konvertiert werden sollen.

dest
Ein Zeiger auf das erste Zeichen vom Typ CharType in dem Zielbereich, in dem der konvertierte Zeichenbereich gespeichert wird.

Rückgabewert

Die erste Memberfunktion gibt das Zeichen vom Typ CharType zurück, das dem Parameterzeichen vom nativen Typ char entspricht.

Die zweite Memberfunktion gibt einen Zeiger auf den Zielbereich mit von einem Gebietsschema verwendeten Zeichen vom Typ CharType zurück, die aus nativen Zeichen vom Typ char konvertiert wurden.

Hinweise

Die erste Memberfunktion gibt do_widen(byte) zurück. Die zweite Memberfunktion gibt do_widen(, , destlast) zurück.first

Beispiel

// ctype_widen.cpp
// compile with: /EHsc /W3
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "English" );
   char *str1 = "Hello everyone!";
   wchar_t str2 [16];
   bool result1 = (use_facet<ctype<wchar_t> > ( loc1 ).widen
      ( str1, str1 + strlen(str1), &str2[0] ) != 0);  // C4996
   str2[strlen(str1)] = '\0';
   cout << str1 << endl;
   wcout << &str2[0] << endl;

   ctype<wchar_t>::char_type charT;
   charT = use_facet<ctype<char> > ( loc1 ).widen( 'a' );
}
Hello everyone!
Hello everyone!

Siehe auch

<Gebietsschema>
Threadsicherheit in der C++-Standardbibliothek