std::tolower
| Definiert in Header <cctype> |
||
| int tolower( int ch ); |
||
Konvertiert das gegebene Zeichen gemäß den Zeichekonvertierungsregeln, die durch die aktuell installierte C-Locale definiert sind, in Kleinbuchstaben.
In der Standard-"C"-Locale werden die folgenden Großbuchstaben ABCDEFGHIJKLMNOPQRSTUVWXYZ durch die entsprechenden Kleinbuchstaben abcdefghijklmnopqrstuvwxyz ersetzt.
Inhalt |
[bearbeiten] 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. |
[bearbeiten] Rückgabewert
Kleinbuchstabenversion von ch oder unverändertes ch, wenn in der aktuellen C-Locale keine Kleinbuchstabenversion aufgeführt ist.
[bearbeiten] 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 chars (oder signed chars) 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 zuerst in unsigned char.
std::string str_tolower(std::string s) { std::transform(s.begin(), s.end(), s.begin(), // static_cast<int(*)(int)>(std::tolower) // wrong // [](int c){ return std::tolower(c); } // wrong // [](char c){ return std::tolower(c); } // wrong [](unsigned char c){ return std::tolower(c); } // correct ); return s; }
[bearbeiten] 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[bearbeiten] Siehe auch
| konvertiert ein Zeichen in Großbuchstaben (Funktion) | |
konvertiert ein Zeichen mit dem ctype-Facet einer Locale in Kleinbuchstaben(Funktionstemplate) | |
| wandelt ein breites Zeichen in Kleinbuchstaben um (Funktion) | |
| C-Dokumentation für tolower
| |
[bearbeiten] Externe Links
| 1. | ISO/IEC 8859-1. Von Wikipedia. |
| 2. | ISO/IEC 8859-15. Von Wikipedia. |