Namespaces
Variants

std:: ctype

From cppreference.net
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.

cpp/locale/ctype base cpp/locale/locale/facet std-ctype-inheritance.svg

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)