Namensräume
Varianten
Aktionen

std::towupper

Von cppreference.com
< cpp‎ | string‎ | wide
 
 
 
 
Definiert in Header <cwctype>
std::wint_t towupper( std::wint_t ch );

Konvertiert das gegebene breite Zeichen in Großbuchstaben, falls möglich.

Wenn der Wert von ch weder als wchar_t darstellbar ist noch gleich dem Wert des Makros WEOF ist, ist das Verhalten undefiniert.

Inhalt

[bearbeiten] Parameter

ch - zu konvertierendes breites Zeichen

[bearbeiten] Rückgabewert

Großbuchstaben-Version von ch oder unverändertes ch, wenn keine Großbuchstaben-Version in der aktuellen C-Locale aufgeführt ist.

[bearbeiten] Hinweise

Nur 1:1-Zeichenzuordnungen können von dieser Funktion durchgeführt werden, z. B. ist die Großbuchstabenform von 'ß' (mit einigen Ausnahmen) der zweistellige String "SS", was nicht mit std::towupper erreicht werden kann.

ISO 30112 legt fest, welche Paare von Unicode-Zeichen in diese Zuordnung einbezogen werden.

[bearbeiten] Beispiel

Der lateinische Buchstabe 'ſ' (U+017F) ist die alternative Kleinbuchstabenform von 'S' (U+0053).

#include <clocale>
#include <cwctype>
#include <iostream>
 
int main()
{
    wchar_t c = L'\u017f'; // Latin small letter Long S ('ſ')
 
    std::cout << std::hex << std::showbase;
    std::cout << "in the default locale, towupper("
              << static_cast<std::wint_t>(c) << ") = "
              << std::towupper(c) << '\n';
 
    std::setlocale(LC_ALL, "en_US.utf8");
    std::cout << "in Unicode locale, towupper("
              << static_cast<std::wint_t>(c) << ") = "
              << std::towupper(c) << '\n';
}

Ausgabe

in the default locale, towupper(0x17f) = 0x17f
in Unicode locale, towupper(0x17f) = 0x53

[bearbeiten] Siehe auch

wandelt ein breites Zeichen in Kleinbuchstaben um
(Funktion) [bearbeiten]
konvertiert ein Zeichen mit dem ctype-Facet einer Locale in Großbuchstaben
(Funktionstemplate) [bearbeiten]
konvertiert ein Zeichen in Großbuchstaben
(Funktion) [bearbeiten]
C-Dokumentation für towupper