LINUX.ORG.RU

История изменений

Исправление xaizek, (текущая версия) :

В Юникодных локалях вроде все языки работают (на практике воде так, но в общем случая я могу и ошибаться). Поэтому «en_US.utf8» должно подойти.

setlocale() переключает глобальное состояние, которое влияет на towupper(c), которая функция из C. В плюсах можно делать так и не заморачиваться с переключением глобального состояния:

std::towupper(c, std::locale("en_US.utf8"));
(Только в теле цикла наверное создавать локаль не стоит на каждый символ.)

Исправление xaizek, :

В Юникодных локалях вроде все языки работают (на практике воде так, но в общем случая я могу и ошибаться). Поэтому «en_US.utf8» должно подойти.

setlocale() переключает глобальное состояние, которое влияет на towupper(c), которая функция из C. В плюсах можно делать так и не заморачиваться с переключением глобального состояния:

towupper(c, std::locale("en_US.utf8"));
(Только в теле цикла наверное создавать локаль не стоит на каждый символ.)

Исходная версия xaizek, :

В Юникодных локалях вроде все языки работают (на практике воде так, но в общем случая я могу и ошибаться). Поэтому «en_US.utf8» должно подойти.

setlocale() переключает глобальное состояние, которое влияет на towupper(c), которая функция из C. В плюсах можно делать так и не заморачиваться с переключением глобального состояния:

towupper(c, std::locale("en_US.utf8"));