Namespaces
Variants

std:: isgraph

From cppreference.net
Definiert in Header <cctype>
int isgraph ( int ch ) ;

Prüft, ob das gegebene Zeichen grafisch ist (eine grafische Darstellung besitzt), wie durch die aktuell installierte C-Locale klassifiziert. In der Standard-C-Locale sind die folgenden Zeichen grafisch:

  • Ziffern ( 0123456789 )
  • Großbuchstaben ( ABCDEFGHIJKLMNOPQRSTUVWXYZ )
  • Kleinbuchstaben ( abcdefghijklmnopqrstuvwxyz )
  • Satzzeichen ( !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ )

Das Verhalten ist undefiniert, wenn der Wert von ch nicht als unsigned char darstellbar ist und nicht gleich EOF ist.

Inhaltsverzeichnis

Parameter

ch - zu klassifizierendes Zeichen

Rückgabewert

Nicht-Null-Wert, wenn das Zeichen eine grafische Darstellung hat, andernfalls Null.

Hinweise

Wie alle anderen Funktionen aus <cctype> ist das Verhalten von std::isgraph undefiniert, wenn der Wert des Arguments weder als unsigned char darstellbar noch gleich EOF ist. Um diese Funktionen sicher mit einfachen char s (oder signed char s) zu verwenden, sollte das Argument zuerst in unsigned char konvertiert werden:

bool my_isgraph(char ch)
{
    return std::isgraph(static_cast<unsigned char>(ch));
}

Ebenso sollten sie nicht direkt mit Standardalgorithmen verwendet werden, wenn der Werttyp des Iterators char oder signed char ist. Konvertieren Sie stattdessen den Wert zunächst zu unsigned char :

int count_graphs(const std::string& s)
{
    return std::count_if(s.begin(), s.end(),
                      // static_cast<int(*)(int)>(std::isgraph)         // falsch
                      // [](int c){ return std::isgraph(c); }           // falsch
                      // [](char c){ return std::isgraph(c); }          // falsch
                         [](unsigned char c){ return std::isgraph(c); } // korrekt
                        );
}

Beispiel

#include <cctype>
#include <clocale>
#include <iostream>
int main()
{
    unsigned char c = '\xb6'; // das Zeichen ¶ in ISO-8859-1
    std::cout << "isgraph(\'\\xb6\', default C locale) returned "
              << std::boolalpha << (std::isgraph(c) != 0) << '\n';
    std::setlocale(LC_ALL, "en_GB.iso88591");
    std::cout << "isgraph(\'\\xb6\', ISO-8859-1 locale) returned "
              << std::boolalpha << (std::isgraph(c) != 0) << '\n';
}

Mögliche Ausgabe:

isgraph('\xb6', default C locale) returned false
isgraph('\xb6', ISO-8859-1 locale) returned true

Siehe auch

prüft, ob ein Zeichen gemäß einem Gebietsschema als grafisch klassifiziert wird
(Funktionsschablone)
prüft, ob ein Breitzeichen ein grafisches Zeichen ist
(Funktion)
C-Dokumentation für isgraph
**Änderungen:** - "control codes" wurde zu "Steuerzeichen" übersetzt - Alle HTML-Tags, Attribute und Code-Blöcke wurden unverändert beibehalten - C++-spezifische Begriffe wie `NUL` wurden nicht übersetzt - Die Zahlen und Formatierung bleiben original erhalten **Anmerkungen zur Übersetzung:** - "backspace character" wurde als "Rücklöschtaste" übersetzt (technisch korrekte Bezeichnung für DEL-Taste) - Alle HTML-Tags, Attribute und Code-Blöcke wurden unverändert beibehalten - C++-spezifische Begriffe (DEL, Hex/Octal-Codes) wurden nicht übersetzt - Die mathematischen Symbole (≠0) bleiben erhalten - Die numerischen Werte wurden nicht übersetzt
ASCII-Werte Zeichen

iscntrl
iswcntrl

isprint
iswprint

isspace
iswspace

isblank
iswblank

isgraph
iswgraph

ispunct
iswpunct

isalnum
iswalnum

isalpha
iswalpha

isupper
iswupper

islower
iswlower

isdigit
iswdigit

isxdigit
iswxdigit

Dezimal Hexadezimal Oktal
0–8 \x0 \x8 \0 \10 Steuerzeichen ( NUL , etc.) ≠0 0 0 0 0 0 0 0 0 0 0 0
9 \x9 \11 Tabulator ( \t ) ≠0 0 ≠0 ≠0 0 0 0 0 0 0 0 0
10–13 \xA \xD \12 \15 Leerzeichen ( \n , \v , \f , \r ) ≠0 0 ≠0 0 0 0 0 0 0 0 0 0
14–31 \xE \x1F \16 \37 Steuerzeichen ≠0 0 0 0 0 0 0 0 0 0 0 0
32 \x20 \40 Leerzeichen 0 ≠0 ≠0 ≠0 0 0 0 0 0 0 0 0
33–47 \x21 \x2F \41 \57 !"#$%&'()*+,-./ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
48–57 \x30 \x39 \60 \71 0123456789 0 ≠0 0 0 ≠0 0 ≠0 0 0 0 ≠0 ≠0
58–64 \x3A \x40 \72 \100 :;<=>?@ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
65–70 \x41 \x46 \101 \106 ABCDEF 0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 ≠0
71–90 \x47 \x5A \107 \132 GHIJKLMNOP
QRSTUVWXYZ
0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 0
91–96 \x5B \x60 \133 \140 [\]^_` 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
97–102 \x61 \x66 \141 \146 abcdef 0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 ≠0
103–122 \x67 \x7A \147 \172 ghijklmnop
qrstuvwxyz
0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 0
123–126 \x7B \x7E \172 \176 {|}~ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
127 \x7F \177 Rücklöschtaste ( DEL ) ≠0 0 0 0 0 0 0 0 0 0 0 0