Поиск в структуре, содержащей строки с кириллицей
От: S1lveria  
Дата: 12.05.10 13:50
Оценка:
Существует такая структура





struct book //структура "Книга" на 7 элементов
{
int date_izd; //год издания книги
char book_name[30]; //название книги
char author[21]; //автор книги
char zhanr[11]; //жанр книги
int price; //стоимость книги
int rate; //рейтинг популярности книги
int id; //ID номер книги

};

все элементы структуры инициализируются, вот так например:


Код:
int b_count = 20;
book *ar = new book [b_count]; //библиотека на 20 книг

ar[0].date_izd = 1868;
strcpy (ar[0].book_name, "Война и мир");
strcpy (ar[0].author, "Толстой");
strcpy (ar[0].zhanr, "Роман");
ar[0].price=250;
ar[0].rate=9;
ar[0].id=1;



Как организовать поиск по элементам структуры, содержащие русские буквы?

Например пользователь вводит "Войн" и результатом поиска должен быть элемент матрицы структур ar[i].book_name "Война и мир"

Спасибо заранее.
Re: Поиск в структуре, содержащей строки с кириллицей
От: Sni4ok  
Дата: 12.05.10 13:56
Оценка:
Здравствуйте, S1lveria, Вы писали:

S>Как организовать поиск по элементам структуры, содержащие русские буквы?


точно также как и в случае с латинскими.
Re[2]: Поиск в структуре, содержащей строки с кириллицей
От: Vamp Россия  
Дата: 12.05.10 14:02
Оценка:
S>точно также как и в случае с латинскими.

А вот я включаю телепатический модуль, и предполагаю, что гражданин редактирует программу в какой-нибудь студии, и набирает русский текст в Win-1251, а потом запускает программу в консли и вводит поисковый запрос в 866, и ничего не срастается.
Да здравствует мыло душистое и веревка пушистая.
Re[3]: Поиск в структуре, содержащей строки с кириллицей
От: S1lveria  
Дата: 12.05.10 14:32
Оценка:
Здравствуйте, Vamp, Вы писали:

S>>точно также как и в случае с латинскими.


V>А вот я включаю телепатический модуль, и предполагаю, что гражданин редактирует программу в какой-нибудь студии, и набирает русский текст в Win-1251, а потом запускает программу программув консли и вводит поисковый запрос в 866, и ничего не срастается.




Я прописываю

setlocale( LC_ALL, "Russian" );

пробовал

SetConsoleCP(1251);
SetConsoleOutputCP(1251);

и тогда кириллица не отображалась вообще
Re: Поиск в структуре, содержащей строки с кириллицей
От: strannik747  
Дата: 12.05.10 15:19
Оценка:
Здравствуйте, S1lveria, Вы писали:

S> strcpy (ar[0].book_name, "Война и мир");

S>Как организовать поиск по элементам структуры, содержащие русские буквы?

Ну раз строки инициализируются прямо в коде, то заноси их прямо в DOS-кодировке (866), т.е. возьми редактор, которые поддерживает кодировки (Notepad++, Far Manager) и вбей русские строки в нужной кодировке. В консольном режиме все будет OK
Re[2]: Поиск в структуре, содержащей строки с кириллицей
От: Roman Odaisky Украина  
Дата: 12.05.10 20:51
Оценка: +1
Здравствуйте, strannik747, Вы писали:

S>Ну раз строки инициализируются прямо в коде, то заноси их прямо в DOS-кодировке (866)


А по пальцам?

UTF-8 — наше всё!!
До последнего не верил в пирамиду Лебедева.
Re[3]: Поиск в структуре, содержащей строки с кириллицей
От: Erop Россия  
Дата: 12.05.10 20:53
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>UTF-8 — наше всё!!

Объясни это DOS
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: Поиск в структуре, содержащей строки с кириллицей
От: Roman Odaisky Украина  
Дата: 12.05.10 21:55
Оценка: :)
Здравствуйте, Erop, Вы писали:

RO>>UTF-8 — наше всё!!

E>Объясни это DOS ;)

Где в исходном сообщении написано о DOS? Автор вообще не удосужился указать ОС.
До последнего не верил в пирамиду Лебедева.
Re[3]: Поиск в структуре, содержащей строки с кириллицей
От: strannik747  
Дата: 13.05.10 06:01
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

S>>Ну раз строки инициализируются прямо в коде, то заноси их прямо в DOS-кодировке (866)


RO>А по пальцам?

RO>UTF-8 — наше всё!!

Судя по формулировке задачи это какая-то лаба в вузе или школе. А там чем проще, тем лучше
Re[4]: Поиск в структуре, содержащей строки с кириллицей
От: Roman Odaisky Украина  
Дата: 14.05.10 07:19
Оценка: :)
Здравствуйте, strannik747, Вы писали:

S>Судя по формулировке задачи это какая-то лаба в вузе или школе. А там чем проще, тем лучше :)


Однобайтовые кодировки — не проще и не лучше. Хочется простоты — пусть берут UTF-32.
До последнего не верил в пирамиду Лебедева.
Re[5]: Поиск в структуре, содержащей строки с кириллицей
От: valker  
Дата: 18.05.10 11:25
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Однобайтовые кодировки — не проще и не лучше. Хочется простоты — пусть берут UTF-32.


Вопросы для развития кругозора:

Заранее спасибо.
Re[6]: Поиск в структуре, содержащей строки с кириллицей
От: Кодт Россия  
Дата: 18.05.10 21:03
Оценка:
Здравствуйте, valker, Вы писали:

V>
  • Какому типу в стандартном С++ соответсвует UTF-32? wchar_t?
    ... только с соответствующими настройками gcc.
    А так, обычный char. Просто это оооочень мультибайтная кодировка.

    V>
  • Какие функции стандартной библиотеки работают с такой кодировкой?
    mbtowc, в принципе, — почему бы и нет. Если считать UTF-32 за mb, а UTF-16 за wc.

    V>
  • Нужны ли какие-то сторонние либы?
    libiconv очень пригодилось бы.
  • Перекуём баги на фичи!
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.