Namensräume
Varianten
Aktionen

std::ctype

Von cppreference.com
< cpp‎ | locale
 
 
 
 
 
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.

cpp/locale/ctype basecpp/locale/locale/facetstd-ctype-inheritance.svg

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) [edit]
ruft do_scan_is auf
(public member function) [edit]
ruft do_scan_not auf
(public member function) [edit]
ruft do_toupper auf
(public member function) [edit]
ruft do_tolower auf
(public member function) [edit]
ruft do_widen auf
(public member function) [edit]
ruft do_narrow auf
(public member function) [edit]

[edit] Geschützte Memberfunktionen

[virtuell]
klassifiziert ein Zeichen oder eine Zeichensequenz
(virtual protected member function) [edit]
[virtuell]
sucht das erste Zeichen in einer Sequenz, das der gegebenen Klassifizierung entspricht
(virtual protected member function) [edit]
[virtuell]
sucht das erste Zeichen in einer Sequenz, das der gegebenen Klassifizierung nicht entspricht
(virtual protected member function) [edit]
[virtuell]
konvertiert ein Zeichen oder Zeichen in Großbuchstaben
(virtual protected member function) [edit]
[virtuell]
konvertiert ein Zeichen oder Zeichen in Kleinbuchstaben
(virtual protected member function) [edit]
[virtuell]
konvertiert ein Zeichen oder Zeichen von char zu CharT
(virtual protected member function) [edit]
[virtuell]
konvertiert ein Zeichen oder Zeichen von CharT zu char
(virtual protected member function) [edit]

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

#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) [bearbeiten]
definiert Zeichenklassifizierungskategorien
(Klasse) [bearbeiten]
repräsentiert die vom System bereitgestellte std::ctype für die benannte Locale
(Klassentemplate) [bearbeiten]