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 unterctype<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)ch
um.Konvertieren Eines Wertbytes vom Typ
char
in einen Wert vom Typ CharType mit dem AusdruckCharType(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(, , last
first
) 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(, , dest
last
) 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!