#include <iostream>
#include <locale>
int main()
{
char c ;
std::cout << "enter a character: " ;
std::cin >> c ;
constint v = c ;
std::cout << "character: " << c << " int value: " << v << '\n' ;
// get the locale used for input by std::cin
// https://en.cppreference.com/w/cpp/io/ios_base/getlocconst std::locale input_locale = std::cin.getloc() ;
// uncomment the imbue line if std::cout is set to use a different locale
// (this not necessary here; by default std::cin and std::cout would use the same locale)
// std::cout.imbue(input_locale) ;
// if it is an upper case character in the input locale
// https://en.cppreference.com/w/cpp/locale/isupperif( std::isupper( c, input_locale ) )
{
// print out the corresponding lower case character
// https://en.cppreference.com/w/cpp/locale/tolower
std::cout << "the lower case character is: " << std::tolower( c, input_locale ) << '\n' ;
}
// if it is a lower case character in the input locale
// https://en.cppreference.com/w/cpp/locale/islowerelseif( std::islower( c, input_locale ) )
{
// print out the corresponding upper case character
// https://en.cppreference.com/w/cpp/locale/toupper
std::cout << "the upper case character is: " << std::toupper( c, input_locale ) << '\n' ;
}
}