std:: tolower
|
Definiert in Header
<cctype>
|
||
|
int
tolower
(
int
ch
)
;
|
||
Wandelt das angegebene Zeichen gemäß den Zeichenkonvertierungsregeln der aktuell installierten C-Locale in Kleinbuchstaben um.
In der Standard-Lokalisierung
"C"
werden die folgenden Großbuchstaben
ABCDEFGHIJKLMNOPQRSTUVWXYZ
durch entsprechende Kleinbuchstaben
abcdefghijklmnopqrstuvwxyz
ersetzt.
Inhaltsverzeichnis |
Parameter
| ch | - | zu konvertierendes Zeichen. Wenn der Wert von ch nicht als unsigned char darstellbar ist und nicht gleich EOF ist, ist das Verhalten undefiniert |
Rückgabewert
Kleinbuchstaben-Version von ch oder unverändertes ch falls keine Kleinbuchstaben-Version in der aktuellen C-Locale vorhanden ist.
Hinweise
Wie alle anderen Funktionen aus
<cctype>
ist das Verhalten von
std::tolower
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:
char my_tolower(char ch) { return static_cast<char>(std::tolower(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 :
std::string str_tolower(std::string s) { std::transform(s.begin(), s.end(), s.begin(), // static_cast<int(*)(int)>(std::tolower) // falsch // [](int c){ return std::tolower(c); } // falsch // [](char c){ return std::tolower(c); } // falsch [](unsigned char c){ return std::tolower(c); } // korrekt ); return s; }
Beispiel
#include <cctype> #include <clocale> #include <iostream> int main() { unsigned char c = '\xb4'; // the character Ž in ISO-8859-15 // but ´ (acute accent) in ISO-8859-1 std::setlocale(LC_ALL, "en_US.iso88591"); std::cout << std::hex << std::showbase; std::cout << "in iso8859-1, tolower('0xb4') gives " << std::tolower(c) << '\n'; std::setlocale(LC_ALL, "en_US.iso885915"); std::cout << "in iso8859-15, tolower('0xb4') gives " << std::tolower(c) << '\n'; }
Mögliche Ausgabe:
in iso8859-1, tolower('0xb4') gives 0xb4
in iso8859-15, tolower('0xb4') gives 0xb8
Siehe auch
|
wandelt ein Zeichen in Großbuchstaben um
(Funktion) |
|
wandelt ein Zeichen unter Verwendung des
ctype
Facets einer Locale in Kleinbuchstaben um
(Funktionstemplate) |
|
|
wandelt ein Breitzeichen in Kleinbuchstaben um
(Funktion) |
|
|
C-Dokumentation
für
tolower
|
|
Externe Links
| 1. | ISO/IEC 8859-1 . Von Wikipedia. |
| 2. | ISO/IEC 8859-15 . Von Wikipedia. |