std::ctype
Von cppreference.com
| Definiert in Header <locale> |
||
| template< class CharT > class ctype; |
||
Die Klasse ctype kapselt Funktionen zur Zeichenklassifizierung. Alle Eingabeoperationen von Streams, die über std::basic_istream<CharT> durchgeführt werden, verwenden das std::ctype<CharT> der im Stream eingebetteten Locale, um Whitespace-Zeichen für die Tokenisierung der Eingabe zu identifizieren. Ausgabeoperationen von Streams wenden std::ctype<CharT>::widen() auf schmalzeichenige Argumente an, bevor diese ausgegeben werden.
Vererbungdiagramm
Inhalt |
[edit] Spezialisierungen
Die Standardbibliothek garantiert die Bereitstellung der folgenden Spezialisierungen (sie müssen von jedem Locale-Objekt implementiert werden)
| Definiert in Header
<locale> | |
std::ctype<char>
|
stellt schmalzeichenige Äquivalente der minimalen "C"-Locale-Klassifizierung bereit. Diese Spezialisierung verwendet Tabellensuche für die Zeichenklassifizierung |
| std::ctype<wchar_t> | stellt breitzeichenige Klassifizierung bereit, die zum nativen Zeichensatz passt |
[edit] Verschachtelte Typen
| Typ | Definition |
char_type
|
CharT
|
[edit] Datenmember
| Mitglied | Beschreibung |
std::locale::id id [static] |
die Kennung des Facets |
[edit] Memberfunktionen
erstellt ein neues ctype-Facet(öffentliche Memberfunktion) | |
zerstört ein ctype-Facet(geschützte Memberfunktion) | |
ruft do_is auf(public member function) | |
ruft do_scan_is auf(public member function) | |
ruft do_scan_not auf(public member function) | |
ruft do_toupper auf(public member function) | |
ruft do_tolower auf(public member function) | |
ruft do_widen auf(public member function) | |
ruft do_narrow auf(public member function) |
[edit] Geschützte Memberfunktionen
| [virtuell] |
klassifiziert ein Zeichen oder eine Zeichensequenz (virtual protected member function) |
| [virtuell] |
sucht das erste Zeichen in einer Sequenz, das der gegebenen Klassifizierung entspricht (virtual protected member function) |
| [virtuell] |
sucht das erste Zeichen in einer Sequenz, das der gegebenen Klassifizierung nicht entspricht (virtual protected member function) |
| [virtuell] |
konvertiert ein Zeichen oder Zeichen in Großbuchstaben (virtual protected member function) |
| [virtuell] |
konvertiert ein Zeichen oder Zeichen in Kleinbuchstaben (virtual protected member function) |
| [virtuell] |
konvertiert ein Zeichen oder Zeichen von char zu CharT(virtual protected member function) |
| [virtuell] |
konvertiert ein Zeichen oder Zeichen von CharT zu char(virtual protected member function) |
Geerbt von std::ctype_base
Verschachtelte Typen
| Typ | Definition |
mask
|
nicht spezifizierter BitmaskType Typ (Enumeration, Ganzzahltyp oder Bitset) |
Member-Konstanten
| Leerzeichen [static] |
der Wert von mask, der die Klassifizierung von Leerzeichen kennzeichnet(öffentliche statische Member-Konstante) |
| print [static] |
der Wert von mask, der die Klassifizierung von druckbaren Zeichen kennzeichnet(öffentliche statische Member-Konstante) |
| cntrl [static] |
der Wert von mask, der die Klassifizierung von Steuerzeichen kennzeichnet(öffentliche statische Member-Konstante) |
| upper [static] |
der Wert von mask, der die Klassifizierung von Großbuchstaben kennzeichnet(öffentliche statische Member-Konstante) |
| lower [static] |
der Wert von mask, der die Klassifizierung von Kleinbuchstaben kennzeichnet(öffentliche statische Member-Konstante) |
| alpha [static] |
der Wert von mask, der die Klassifizierung von alphabetischen Zeichen kennzeichnet(öffentliche statische Member-Konstante) |
| Ziffer [static] |
der Wert von mask, der die Klassifizierung von Ziffern kennzeichnet(öffentliche statische Member-Konstante) |
| punct [static] |
der Wert von mask, der die Klassifizierung von Satzzeichen kennzeichnet(öffentliche statische Member-Konstante) |
| xdigit [static] |
der Wert von mask, der die Klassifizierung von Hexadezimalziffern kennzeichnet(öffentliche statische Member-Konstante) |
| blank [statisch] (C++11) |
der Wert von mask, der die Klassifizierung von Leerzeichen (Blank) kennzeichnet(öffentliche statische Member-Konstante) |
| alnum [static] |
alpha | digit (öffentliche statische Member-Konstante) |
| graph [static] |
alnum | punct (öffentliche statische Member-Konstante) |
[edit] Beispiel
Das folgende Beispiel zeigt die Modifikation eines ctype außer ctype<char> zur Tokenisierung einer CSV-Datei
Führen Sie diesen Code aus
#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
[edit] Siehe auch
| Spezialisierung von std::ctype für den Typ char (Klassentemplate-Spezialisierung) | |
| definiert Zeichenklassifizierungskategorien (Klasse) | |
| repräsentiert die vom System bereitgestellte std::ctype für die benannte Locale (Klassentemplate) |