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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Структуры http://www.cyberforum.ru/cpp-beginners/thread711308.html
Ребята, помогите пожалуйста решить задачу. Есть массив с 10 структур, куда заносятся данные об студентах: Имя, номер группы и количество пропусков. Надо чтобы выводило записи по спаданию номеров групп. Цикл для этого то работает, и номера групп берет правильно, но имена выводит не соответствующие номеру группы. вот код: #include <vcl.h> #pragma hdrstop #include <iostream.h> #include...
C++ Что содержит ссылка? Почитал в нескольких местах. Везде одно и то же: "ссылка - это псевдоним". Интересно, а она вообще является отдельной переменной? То есть: int x = 2; int &r = x; Здесь 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 dannie {
C++ структуры ссылки и функции Здравствуйте. Есть задача: " В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время отправления и прибытия. Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения раньше заданного времени. Использовать функции." Помимо этого нужно сделать в программе передачу структуры по... подробнее

Показать сообщение отдельно
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
27.11.2012, 21:35  [ТС]     Регистронезависимое сравнение строк с русскими буквами
Что-то свой toUpper не помог, видимо там разница меняется между символами ...
C++
1
2
3
4
5
6
7
8
9
10
wchar_t toUpper(const wchar_t ch)
{
    static wchar_t A = 'А';
    static wchar_t a = 'а';
    static int diff= A - a;
    if(ch<A)
        return ch+diff;
    else
        return ch;
}
Хотя проанализировав задачу выявил что мне не очень то нужно сравнивать строки с русскими символами, в принципе мне достаточно переводить первый символ первого слова в предложении в нижний регистр ... но тем не менее мне нужно как-то это сделать.

Добавлено через 58 секунд
Toshkarik, у меня размер строки = количеству символов в ней, но это проблему не решает так как нужно что-то апаратно независимое для возможности перевода из верхнего регистра в нижний русских букв.

Добавлено через 17 минут
Ладно, для моей задачи вполне должно быть достаточно функции toLov для перевода первого символа в словах. Вот такая работает у меня вполне нормально, знать бы ещё как она себя поведёт на другой машине
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
wchar_t toLov(const wchar_t ch)
{
    static wchar_t A = 'А';
    static wchar_t a = 'а';
    static int diff= a - A; // = 32
    if(ch>=A && ch<a) // в верхнем регистре
        return ch+diff;
    else
        return ch;
}
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    string str1="Абрикос";
    string str2="Мазда";
    string str3="Ява";
    str1[0]=toLov(str1[0]);
    str2[0]=toLov(str2[0]);
    str3[0]=toLov(str3[0]);
    cout<<str1<<'\n'<<str2<<'\n'<<str3<<endl;
}
Проверьте если кому не трудно
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru