Difference between revisions of "cpp/locale/tolower"
From cppreference.com
(reused towlower example) |
m (trim spaces; charT→CharT, langlinks; fix #Example) |
||
Line 1: | Line 1: | ||
− | {{cpp/title | tolower{{small|(std::locale)}}}} | + | {{cpp/title|tolower{{small|(std::locale)}}}} |
{{cpp/locale/navbar}} | {{cpp/locale/navbar}} | ||
− | + | {{ddcl|header=locale| | |
− | {{ddcl | header=locale | | + | template< class CharT > |
− | template< class | + | CharT tolower( CharT ch, const locale& loc ); |
− | + | ||
}} | }} | ||
Line 11: | Line 10: | ||
===Parameters=== | ===Parameters=== | ||
{{par begin}} | {{par begin}} | ||
− | {{par | ch | character}} | + | {{par|ch|character}} |
− | {{par | loc | locale }} | + | {{par|loc|locale }} |
{{par end}} | {{par end}} | ||
Line 23: | Line 22: | ||
===Possible implementation=== | ===Possible implementation=== | ||
{{eq fun | {{eq fun | ||
− | + | |1= | |
− | template< class | + | template< class CharT > |
− | + | CharT tolower( CharT ch, const std::locale& loc ) { | |
− | return std::use_facet<std::ctype< | + | return std::use_facet<std::ctype<CharT>>(loc).tolower(ch); |
} | } | ||
}} | }} | ||
Line 32: | Line 31: | ||
===Example=== | ===Example=== | ||
{{example | {{example | ||
− | + | | | |
− | + | |code= | |
#include <iostream> | #include <iostream> | ||
#include <cwctype> | #include <cwctype> | ||
Line 45: | Line 44: | ||
std::cout << "in the default locale, tolower(" << (std::wint_t)c << ") = " | std::cout << "in the default locale, tolower(" << (std::wint_t)c << ") = " | ||
− | << std::tolower(c, std::locale()) << '\n'; | + | << (std::wint_t)std::tolower(c, std::locale()) << '\n'; |
std::cout << "in Unicode locale, tolower(" << (std::wint_t)c << ") = " | std::cout << "in Unicode locale, tolower(" << (std::wint_t)c << ") = " | ||
− | << std::tolower(c, std::locale("en_US.utf8")) << '\n'; | + | << (std::wint_t)std::tolower(c, std::locale("en_US.utf8")) << '\n'; |
} | } | ||
− | + | |p=true | |
+ | |output= | ||
in the default locale, tolower(0x190) = 0x190 | in the default locale, tolower(0x190) = 0x190 | ||
in Unicode locale, tolower(0x190) = 0x25b | in Unicode locale, tolower(0x190) = 0x25b | ||
Line 57: | Line 57: | ||
===See also=== | ===See also=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc inc | cpp/locale/dsc toupper}} | + | {{dsc inc|cpp/locale/dsc toupper}} |
− | {{dsc inc | cpp/string/byte/dsc tolower}} | + | {{dsc inc|cpp/string/byte/dsc tolower}} |
− | {{dsc inc | cpp/string/wide/dsc towlower}} | + | {{dsc inc|cpp/string/wide/dsc towlower}} |
{{dsc end}} | {{dsc end}} | ||
− | + | {{langlinks|de|es|fr|it|ja|pt|ru|zh}} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Revision as of 16:41, 23 January 2023
Defined in header <locale>
|
||
template< class CharT > CharT tolower( CharT ch, const locale& loc ); |
||
Converts the character ch
to lowercase if possible, using the conversion rules specified by the given locale's std::ctype facet.
Contents |
Parameters
ch | - | character |
loc | - | locale |
Return value
Returns the lowercase form of ch
if one is listed in the locale, otherwise return ch
unchanged.
Notes
Only 1:1 character mapping can be performed by this function, e.g. the Greek uppercase letter 'Σ' has two lowercase forms, depending on the position in a word: 'σ' and 'ς'. A call to std::tolower cannot be used to obtain the correct lowercase form in this case.
Possible implementation
template< class CharT > CharT tolower( CharT ch, const std::locale& loc ) { return std::use_facet<std::ctype<CharT>>(loc).tolower(ch); } |
Example
Run this code
#include <iostream> #include <cwctype> #include <locale> int main() { wchar_t c = L'\u0190'; // Latin capital open E ('Ɛ') std::cout << std::hex << std::showbase; std::cout << "in the default locale, tolower(" << (std::wint_t)c << ") = " << (std::wint_t)std::tolower(c, std::locale()) << '\n'; std::cout << "in Unicode locale, tolower(" << (std::wint_t)c << ") = " << (std::wint_t)std::tolower(c, std::locale("en_US.utf8")) << '\n'; }
Possible output:
in the default locale, tolower(0x190) = 0x190 in Unicode locale, tolower(0x190) = 0x25b
See also
converts a character to uppercase using the ctype facet of a locale (function template) | |
converts a character to lowercase (function) | |
converts a wide character to lowercase (function) |