Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Изменение регистра кириллицы


Автор: Дшпыук 8.4.2010, 21:47
Есть ли в С++ что то подобное?) Желательно для std::string гугл уже не помогает) Заренее благодарен.
Пардон, нашел) Помогла как ни странно такое решение:

Код

string ToLowSt(string str){
    for (int i = 0; i < str.length(); i++)
          str[i] |= 0x20;
    return str;
}

=) хотя не пойму почему с кирилицей это прокатило в cp866)

Автор: Alca 8.4.2010, 21:53
http://www.cplusplus.com/query/search.cgi?q=tolower

Добавлено через 10 секунд
http://www.cplusplus.com/reference/clibrary/cctype/toupper/

Автор: Дшпыук 8.4.2010, 21:59
tolower/upper безусловно удобны но у меня они не работали с кирилицей) smile 

Автор: ИванМ 8.4.2010, 22:01
Дшпыук, ваша функция работает только с буквами. А другие знаки искажает. Надо проверять сначала, буква ли это.

Добавлено через 1 минуту и 45 секунд
http://forum.vingrad.ru/forum/topic-296807.html

Добавлено через 7 минут и 25 секунд
у tolower/toupper есть второй аргумент - локаль. Так что он с кириллицей тоже может работать

Автор: Alca 8.4.2010, 22:11
Тут недавно была такая же тема - поищи.

Автор: Дшпыук 8.4.2010, 22:19
Цитата(Alca @  8.4.2010,  22:11 Найти цитируемый пост)
Тут недавно была такая же тема - поищи.

Я в ней кажется и нашел своё решение)
Цитата(ИванМ @  8.4.2010,  22:01 Найти цитируемый пост)
у tolower/toupper есть второй аргумент - локаль. Так что он с кириллицей тоже может работать

Локаль есть, это да, вот только я не могу найти нужную для CP866 кирилицы. Компиляется а при выполнении выдаёт фатальную ошибку)
Цитата(ИванМ @  8.4.2010,  22:01 Найти цитируемый пост)
ваша функция работает только с буквами. А другие знаки искажает. Надо проверять сначала, буква ли это.

При надобности добавить проверку по коду в принципе не сложно) Мне нужно было это лишь для сравнения, поэтому искажение не критично)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)