Использую следующие функции для конвертирования строк в Uppercase и LowerCase:
std::string ConvertToUpper(const std::string &aValue)
{
std::string result = aValue;
std::transform(aValue.begin(), aValue.end(), result.begin(), (int(*)(int))std::toupper);
return result;
}
std::string ConvertToLower(const std::string &aValue)
{
std::string result = aValue;
std::transform(aValue.begin(), aValue.end(), result.begin(), (int(*)(int))std::tolower);
return result;
}
Недавно заметил что они не работают для кириличных UTF-8 строк.
Как правильно преобразовать std::string в Uppercase и LowerCase для UTF-8?