std:: ctype
|
Definiert im Header
<locale>
|
||
|
template
<
class
CharT
>
class ctype ; |
||
Die Klasse
ctype
kapselt Zeichenklassifizierungsfunktionen. Alle Stream-Eingabeoperationen, die durch
std::
basic_istream
<
CharT
>
durchgeführt werden, verwenden die
std::ctype<CharT>
der im Stream enthaltenen Locale, um Leerzeichen für die Eingabetokenisierung zu identifizieren. Stream-Ausgabeoperationen wenden
std::ctype<CharT>::widen()
auf Schmalschriftzeichen-Argumente vor der Ausgabe an.
Vererbungsdiagramm
Inhaltsverzeichnis |
Spezialisierungen
Die Standardbibliothek garantiert die Bereitstellung der folgenden Spezialisierungen (sie sind von jedem Locale-Objekt implementiert werden müssen ):
|
Definiert im Header
<locale>
|
|
std::ctype<char>
|
bietet Äquivalente zur Zeichenklassifizierung des minimalen "C"-Locales für schmale Zeichen. Diese Spezialisierung verwendet Tabellennachschlagen für die Zeichenklassifizierung |
| std :: ctype < wchar_t > | bietet Zeichenklassifizierung für breite Zeichen, die zum nativen Zeichensatz passt |
Verschachtelte Typen
| Typ | Definition |
char_type
|
CharT
|
Datenmitglieder
| Mitglied | Beschreibung |
std::locale::id
id
[static]
|
der Identifikator des Facet |
Memberfunktionen
Konstruiert eine neue
ctype
Facette
(öffentliche Elementfunktion) |
|
zerstört eine
ctype
Facette
(geschützte Elementfunktion) |
|
ruft
do_is
auf
(öffentliche Elementfunktion) |
|
ruft
do_scan_is
auf
(öffentliche Elementfunktion) |
|
ruft
do_scan_not
auf
(öffentliche Elementfunktion) |
|
ruft
do_toupper
auf
(öffentliche Elementfunktion) |
|
ruft
do_tolower
auf
(öffentliche Elementfunktion) |
|
ruft
do_widen
auf
(öffentliche Elementfunktion) |
|
ruft
do_narrow
auf
(öffentliche Elementfunktion) |
Geschützte Memberfunktionen
|
[virtual]
|
klassifiziert ein Zeichen oder eine Zeichenfolge
(geschützte virtuelle Elementfunktion) |
|
[virtual]
|
findet das erste Zeichen in einer Folge, das einer gegebenen Klassifikation entspricht
(geschützte virtuelle Elementfunktion) |
|
[virtual]
|
findet das erste Zeichen in einer Folge, das eine gegebene Klassifikation nicht erfüllt
(geschützte virtuelle Elementfunktion) |
|
[virtual]
|
konvertiert ein Zeichen oder Zeichen in Großbuchstaben
(geschützte virtuelle Elementfunktion) |
|
[virtual]
|
konvertiert ein Zeichen oder Zeichen in Kleinbuchstaben
(geschützte virtuelle Elementfunktion) |
|
[virtual]
|
konvertiert ein Zeichen oder Zeichen von
char
zu
CharT
(geschützte virtuelle Elementfunktion) |
|
[virtual]
|
konvertiert ein Zeichen oder Zeichen von
CharT
zu
char
(geschützte virtuelle Elementfunktion) |
Geerbt von std:: ctype_base
Geschachtelte Typen
| Typ | Definition |
mask
|
nicht spezifizierter BitmaskType Typ (Aufzählung, Ganzzahltyp oder Bitset) |
Member-Konstanten
|
space
[static]
|
der Wert von
mask
zur Identifikation der Leerzeichen-Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
print
[static]
|
der Wert von
mask
zur Identifikation der druckbaren Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
cntrl
[static]
|
der Wert von
mask
zur Identifikation der Steuerzeichen-Klassifikation
(öffentliche statische Member-Konstante) |
|
upper
[static]
|
der Wert von
mask
zur Identifikation der Großbuchstaben-Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
lower
[static]
|
der Wert von
mask
zur Identifikation der Kleinbuchstaben-Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
alpha
[static]
|
der Wert von
mask
zur Identifikation der alphabetischen Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
digit
[static]
|
der Wert von
mask
zur Identifikation der Ziffern-Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
punct
[static]
|
der Wert von
mask
zur Identifikation der Interpunktions-Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
xdigit
[static]
|
der Wert von
mask
zur Identifikation der Hexadezimalziffern-Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
blank
[static]
(C++11)
|
der Wert von
mask
zur Identifikation der Leerstellen-Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
alnum
[static]
|
alpha
|
digit
(öffentliche statische Member-Konstante) |
|
graph
[static]
|
alnum
|
punct
(öffentliche statische Member-Konstante) |
Beispiel
Das folgende Beispiel demonstriert die Modifikation eines
ctype
außer
ctype<char>
zur Tokenisierung einer CSV-Datei:
#include <iostream> #include <locale> #include <sstream> struct csv_whitespace : std::ctype<wchar_t> { bool do_is(mask m, char_type c) const { if ((m & space) && c == L' ') return false; // space will NOT be classified as whitespace if ((m & space) && c == L',') return true; // comma will be classified as whitespace return ctype::do_is(m, c); // leave the rest to the base class } }; int main() { std::wstring in = L"Column 1,Column 2,Column 3\n123,456,789"; std::wstring token; std::wcout << "default locale:\n"; std::wistringstream s1(in); while (s1 >> token) std::wcout << " " << token << '\n'; std::wcout << "locale with modified ctype:\n"; std::wistringstream s2(in); csv_whitespace* my_ws = new csv_whitespace; s2.imbue(std::locale(s2.getloc(), my_ws)); while (s2 >> token) std::wcout << " " << token << '\n'; }
Ausgabe:
default locale: Column 1,Column 2,Column 3 123,456,789 locale with modified ctype: Column 1 Column 2 Column 3 123 456 789
Siehe auch
|
Spezialisierung von
std::ctype
für den Typ
char
(Klassen-Template-Spezialisierung) |
|
|
definiert Zeichenklassifizierungskategorien
(Klasse) |
|
|
repräsentiert die systemspezifische
std::ctype
für die benannte Locale
(Klassen-Template) |