Namespaces
Variants

std:: isalpha

From cppreference.net
Definiert im Header <cctype>
int isalpha ( int ch ) ;

Prüft, ob das gegebene Zeichen ein alphabetisches Zeichen ist, wie es durch das aktuell installierte C-Locale klassifiziert wird. Im Standard-Locale sind die folgenden Zeichen alphabetisch:

  • Großbuchstaben ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Kleinbuchstaben abcdefghijklmnopqrstuvwxyz

In Gebietsschemata außer "C" ist ein alphabetisches Zeichen ein Zeichen, für das std::isupper() oder std::islower() einen Wert ungleich Null zurückgibt, oder jedes andere Zeichen, das vom Gebietsschema als alphabetisch betrachtet wird. In jedem Fall geben std::iscntrl() , std::isdigit() , std::ispunct() und std::isspace() für dieses Zeichen Null zurück.

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

Ein Wert ungleich Null, wenn das Zeichen ein alphabetisches Zeichen ist, andernfalls Null.

Hinweise

Wie alle anderen Funktionen aus <cctype> ist das Verhalten von std::isalpha 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_isalpha(char ch)
{
    return std::isalpha(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_alphas(const std::string& s)
{
    return std::count_if(s.begin(), s.end(),
                      // static_cast<int(*)(int)>(std::isalpha)         // falsch
                      // [](int c){ return std::isalpha(c); }           // falsch
                      // [](char c){ return std::isalpha(c); }          // falsch
                         [](unsigned char c){ return std::isalpha(c); } // korrekt
                        );
}

Beispiel

Demonstriert die Verwendung von std::isalpha mit verschiedenen Locales (betriebssystemspezifisch).

#include <cctype>
#include <clocale>
#include <iostream>
int main()
{
    unsigned char c = '\xdf'; // German letter ß in ISO-8859-1
    std::cout << "isalpha(\'\\xdf\', default C locale) returned "
              << std::boolalpha << !!std::isalpha(c) << '\n';
    std::setlocale(LC_ALL, "de_DE.iso88591");
    std::cout << "isalpha(\'\\xdf\', ISO-8859-1 locale) returned "
              << static_cast<bool>(std::isalpha(c)) << '\n';
}

Mögliche Ausgabe:

isalpha('\xdf', default C locale) returned false
isalpha('\xdf', ISO-8859-1 locale) returned true

Siehe auch

prüft, ob ein Zeichen gemäß einem Gebietsschema als alphabetisch klassifiziert wird
(Funktionsschablone)
prüft, ob ein Breitzeichen alphabetisch ist
(Funktion)
C-Dokumentation für isalpha
**Übersetzungsdetails:** - "control codes" wurde zu "Steuerzeichen" übersetzt - Alle HTML-Tags, Attribute und Formatierung wurden beibehalten - Text innerhalb der ` `-Tags wurde nicht übersetzt - C++-spezifische Begriffe wie `NUL` wurden nicht übersetzt - Die numerischen Werte und Sonderzeichen bleiben unverändert
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