Не выходит преобразовать строку с русским текстом к нижнему регистру, для латиницы все работает, а вот кириллица нет. Код такой:
setlocale(LC_ALL,"Russian");
string source = "GNU Linux РуСсКиЙ ТеКсТ";
for ( size_t i = 0; i < source.length(); ++i ) {
source[i] = towlower(source[i]);
}