1. option
Вы можете использовать std::tolower
и std::toupper
из заголовка <locale>
, которые возвращают тип, который вы ожидаете, что они возвратят .
Посмотрите на примеры:
char c {'T'};
std::cout << std::tolower(c, std::locale()) << std::endl; // output: t
и
char c {'t'};
std::cout << std::toupper(c, std::locale()) << std::endl; // output: T
Проверка живой пример
2. опция
Вы можете использовать std::tolower
и std::toupper
из <cctype>
заголовок, который возвращает int
, что вам нужно бросить char
.
Вот примеры:
char c {'T'};
std::cout << static_cast<char>(std::tolower(c)) << std::endl; // output: t
и
char c {'t'};
std::cout << static_cast<char>(std::toupper(c)) << std::endl; // output: T
Чек живой пример
Вы также можете создавать свои собственные удобные вспомогательные функции:
char toupper(char c) {
return static_cast<char>(std::toupper(static_cast<unsigned char>(c)));
}
char tolower(char c) {
return static_cast<char>(std::tolower(static_cast<unsigned char>(c)));
}
, которые вы можете использовать следующим образом:
char c1 {'T'};
char c2 {'t'};
std::cout << tolower(c1) << std::endl; // output: t
std::cout << toupper(c2) << std::endl; // output: T