Namespaces
Variants

std:: islower

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

Überprüft, ob das gegebene Zeichen gemäß dem aktuellen C-Locale als Kleinbuchstabe klassifiziert wird. Im Standard- "C" Locale gibt std::islower nur für die Kleinbuchstaben ( abcdefghijklmnopqrstuvwxyz ) einen Wert ungleich Null zurück.

Wenn islower einen Wert ungleich Null zurückgibt, ist garantiert, dass std::iscntrl , std::isdigit , std::ispunct und std::isspace für dasselbe Zeichen in derselben C-Locale Null zurückgeben.

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 ein Kleinbuchstabe ist, andernfalls Null.

Hinweise

Wie alle anderen Funktionen aus <cctype> ist das Verhalten von std::islower 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 zunächst in unsigned char konvertiert werden:

bool my_islower(char ch)
{
    return std::islower(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_lowers(const std::string& s)
{
    return std::count_if(s.begin(), s.end(),
                      // static_cast<int(*)(int)>(std::islower)         // falsch
                      // [](int c){ return std::islower(c); }           // falsch
                      // [](char c){ return std::islower(c); }          // falsch
                         [](unsigned char c){ return std::islower(c); } // korrekt
                        );
}

Beispiel

#include <cctype>
#include <clocale>
#include <iostream>
int main()
{
    unsigned char c = '\xe5'; // letter å in ISO-8859-1
    std::cout << "islower(\'\\xe5\', default C locale) returned "
              << std::boolalpha << (bool)std::islower(c) << '\n';
    std::setlocale(LC_ALL, "en_GB.iso88591");
    std::cout << "islower(\'\\xe5\', ISO-8859-1 locale) returned "
              << std::boolalpha << (bool)std::islower(c) << '\n';
}

Mögliche Ausgabe:

islower('\xe5', default C locale) returned false
islower('\xe5', ISO-8859-1 locale) returned true

Siehe auch

prüft, ob ein Zeichen gemäß einem Gebietsschema als Kleinbuchstabe klassifiziert wird
(Funktionsschablone)
prüft, ob ein Breitzeichen ein Kleinbuchstabe ist
(Funktion)
C-Dokumentation für islower
**Anmerkung:** In diesem HTML-Abschnitt gibt es keinen zu übersetzenden Text außerhalb der Code-Tags. Die numerischen Werte, Bindestriche und C++-spezifischen Zeichenketten (wie \x30, \60, ≠0) bleiben gemäß den Anforderungen unverändert. **Anmerkung:** Der Text wurde gemäß den Anforderungen übersetzt: - HTML-Tags und Attribute wurden nicht übersetzt - Text innerhalb von -Tags wurde nicht übersetzt - C++-spezifische Begriffe wurden nicht übersetzt - Bindestriche (–) zwischen den Code-Blöcken wurden beibehalten - Die numerischen Werte und Sonderzeichen (≠) wurden unverändert gelassen
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