Re: std::string перевод русской строки в нижний регистр
От: sadomovalex Россия http://sadomovalex.blogspot.com
Дата: 13.07.04 09:11
Оценка:
Здравствуйте, yaro., Вы писали:

Y>перевод в нижний регистр не работает...

Y>на выходе полный бред... иногда проскакивают слова, но в основном абракадабра...

А ты случайно не консольное приложение для Win32 пишешь и результат преобразования на консоли проверяешь ?
А так вот:

#include <string>
#include <locale>
#include <algorithm>
#include <windows.h>

using namespace std;

struct toLower
{
    toLower(locale loc): m_loc(loc) {}

    char operator()(char c)
    {
        return tolower(c, m_loc);
    }
    locale m_loc;
};

void main()
{
    string s = "АЛЕКС";
    toLower tl(locale("rus"));
    transform(s.begin(), s.end(), s.begin(), tl);
    MessageBox(NULL, s.c_str(), "info", MB_OK);
}
"Что не завершено, не сделано вовсе" Гаусс
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.