Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Регистронезависимое сравнение строк с русскими буквами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Структуры http://www.cyberforum.ru/cpp-beginners/thread711308.html
Ребята, помогите пожалуйста решить задачу. Есть массив с 10 структур, куда заносятся данные об студентах: Имя, номер группы и количество пропусков. Надо чтобы выводило записи по спаданию номеров...
C++ Что содержит ссылка? Почитал в нескольких местах. Везде одно и то же: "ссылка - это псевдоним". Интересно, а она вообще является отдельной переменной? То есть: int x = 2; int &r = x; Здесь r это ссылка (т.е.... http://www.cyberforum.ru/cpp-beginners/thread711281.html
Найти количество цифр в десятичном числе k C++
Найти количество цифр в десятичном числе k.
C++ Дана последовательность целых чисел, за которой следует 0. Найти сумму элементов с нечетными номерами из этой последовательности
Дана последовательность целых чисел, за которой следует 0. Найти сумму элементов с нечетными номерами из этой последовательности.
C++ Invalid conversion from `int' to `const char*' http://www.cyberforum.ru/cpp-beginners/thread711270.html
Здравствуйте.Возникла проблема с типами данных, пытался решить - стало хуже...:wall: Вот сам код: #include <iostream> #include <cstring> #include <fstream> using namespace std; struct...
C++ структуры ссылки и функции Здравствуйте. Есть задача: " В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время отправления и прибытия.... подробнее

Показать сообщение отдельно
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517

Регистронезависимое сравнение строк с русскими буквами - C++

27.11.2012, 20:50. Просмотров 1617. Ответов 14
Метки (Все метки)

Необходимо регистронезависимо сравнивать строки string с русскими буквами. Пробовал поиграться с встроенным toUpper но у меня вот так он не работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    bool compare_nocase(const string &str1, const string &str2)
    {
        string::const_iterator i1 = str1.begin(), i2 = str2.begin();
        std::locale loc = std::locale::classic();
 
        while((i1 != str1.end()) && (i2 != str2.end()))
        {
            if(toupper(*i1,loc) != toupper(*i2,loc))
            {
                return false;
            }
 
            ++i1, ++i2;
        }
 
        return (str1.length() == str2.length());
    }
Те в данном случае возвращается один только если вызвать для "строка"="строка", а для "строка"="сТрока" уже вернёт 0. Что посоветуете?

Добавлено через 3 минуты
Вспоминается мне что в с++ что-то было там по культурам, но помню я тот раздел в книге где я его видел читать не стал, а вот сейчас какраз что-то такое видимо и надо ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru