Строка для нижнего/верхнего уровня в C++

> std::string data = “Abc”; 
> std::transform(data.begin(), data.end(), data.begin(), ::toupper);

Это будет работать, но будет cpp использоваться стандартная cxx локаль "C". Вы можете использовать unicode фасеты, если вам нужно получить unicode более низкий уровень для cxx другой локали. Приведенный strings выше код с использованием string-manipulation фасетов будет выглядеть так:

locale loc("");
const ctype& ct = use_facet >(loc);
transform(str.begin(), str.end(), std::bind1st(std::mem_fun(&ctype::tolower), &ct));

c++

string

unicode

2022-10-15T13:13:11+00:00