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


Автор: pharrell 27.6.2006, 22:40
Как отсортировать по русскому алфавизаписи в файле.Подскажите кто может. 

Автор: Xenon 27.6.2006, 23:07
Так же, как и инглиш 

Автор: Earnest 28.6.2006, 16:53
Ну не совсем.
Алфавитный порядок русских символов, в зависимости от кодировки, не совпадает с их числовым порядком.
Поэтому, если говорить о C, нужно установить русскую локаль, и сравнивать не функцией strcmp, а strcoll, которая использует информацию о локале.  Локаль устнавливается примерно так: setlocale (LC_COLLATE, "Russian"). Это пример из Windows, MSVC. В других комиляторах функция setlocale тоже должна быть, но аргументы могут называться чуть иначе, так что смотри документацию.

 

Автор: 0x07L 28.6.2006, 17:06
Earnest, можешь привести пример такой кодировки, ради интересу? Я знаю кодировки, в которых ряд русских букв разорван, но не знаю такие, в которых изменен порядок букв.  

Автор: Void 28.6.2006, 17:14
KOI8-R 

Автор: SaDFromSpb 28.6.2006, 17:17
Цитата(0x07L @  28.6.2006,  17:06 Найти цитируемый пост)
Earnest, можешь привести пример такой кодировки, ради интересу?
Присоединяюсь.

А может он про алгоритм спрашивает? =)




 

Автор: Earnest 28.6.2006, 17:17
Кроме порядка, локаль определяет также преобразование между строчными и прописными буквами. Что тоже важно для сравнения, скажем, без учета регистра.

Добавлено @ 17:18 
Цитата(SaDFromSpb @  28.6.2006,  18:17 Найти цитируемый пост)
Цитата(0x07L @  28.6.2006,  17:06 )
Earnest, можешь привести пример такой кодировки, ради интересу?

Присоединяюсь.

Void уже ответил.
 

Автор: 0x07L 28.6.2006, 19:36
Извините, вопрос несколько не в тему, однако как можно заставить стандартные функции воспринимать файл как записанный в кодировке, например, KOI8-R, а не в кодировке ANSI? 

Автор: Void 28.6.2006, 19:58
В С++ — написать свою локаль, точнее, codecvt facet, понимающую KOI8-R. 

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