Здравствуйте, igna, Вы писали:
I>Твой пример имеет отношение к сортировке, но к collation — вряд ли. Все-таки согласись, странно постоянно и в каждом предложении напоминать о том, что речь идет о сортировке в смысле collation, когда collation эта появилась в названии темы с самого начала и не девается оттуда никуда.
Я если честно, знать не знал что такое "collation" (кроме его перевода который указывает на сортировку, но не на ее вид) пока не заглянул в вики после твоего вопроса
Поэтому считал, что ты не уверен зачем нужно вообще сортировать слова не в алфавитном, а каком-то другом порядке.
По поводу равенства букв ё и Е в сообщении Синклера и фразы: "Не передергивай, речь не о сравнении на равенство, а о сортировке."
Сравнение на равенство имеет непосредственное отношение к сравнению на больше/меньше/равно (частичный порядок), так как равные элементы имеют одинаковые "веса" и идут вместе (как в примере "елка, ёлка, епископ").
По поводу изначального сообщения пример задачи (да отталкиваться нужно именно от задачи) приведен здесь
Здравствуйте, Aikin, Вы писали:
I>>strcoll: aikIN, aIkIn, Aikin, AIKIN, igna, ignA, Igna, IGNA I>>stricoll: Aikin, aIkIn, AIKIN, aikIN, igna, Igna, IGNA, ignA A>Хмм, интересно... Нужно почитать про этот strcoll. Почему именно так...
Вот, верно. У меня, пока я про strcoll не читал, тоже вопросов не возникало. Просто думал, что раз есть strcmp, _stricmp и strcoll, то почему бы не быть и _stricoll-у.
Здравствуйте, Sinclair, Вы писали:
S>Только не locale, а collation.
Согласен, просто в C и C++ collation является частью locale, но конечно точнее говорить collation.
S>Я вообще твою претензию не понимаю. Я бы понял, если бы чего-то не было, что тебе нужно. А зачем требовать, чтобы что-то убрали ?
Чтобы это что-то не использовали сами не понимая зачем, и мне не приходилось его потом отрывать и выбрасывать со скрежетом.
Здравствуйте, igna, Вы писали:
I>Какой смысл имеет независимая от регистра сортировка в лексикографическом порядке определенного языка? Если в русском языке принято, что строчные буквы предшествуют прописным, зачем менять этот порядок? Я еще понимаю причины появления скажем функции _stricmp в C, которая в случае английского языка является неким подобием функции strcoll, но зачем кому-то понадобилась _stricoll?
There has historically been some variation in the application of these rules. For instance, the prefixes Mc and M' in Irish and Scottish surnames were taken to be abbreviations for Mac, and alphabetized as if they were spelled out as Mac in full. Thus one might find in a catalog the sequence:
McKinley
Mackintosh
with McKinley preceding Mackintosh, as if it had been spelled "MacKinley". Since the advent of computer-sorted lists, this type of alphabetization is less frequently encountered, though it is still used in British phone books.
И еще пример про пробелы:
A variation in alphabetical principles applies to names consisting of two words. In some cases, names with identical first words are all alphabetized together under the first word, e.g., grouping together all names beginning with San, all those beginning with Santa, and those beginning with Santo:
San
San Cristobal
San Juan
San Teodoro
San Tomas
Santa Barbara
Santa Clara
Santa Cruz
Santo Domingo
But in another system, the names are alphabetized as if they had no spaces, e.g. as follows:
San
San Cristobal
San Juan
Santa Barbara
Santa Clara
Santa Cruz
San Teodoro
Santo Domingo
San Tomas
Вот так вот
В общем рекомендую ознакомиться со статьей в Вики.
A>with McKinley preceding Mackintosh, as if it had been spelled "MacKinley". Since the advent of computer-sorted lists, this type of alphabetization is less frequently encountered, though it is still used in British phone books.
Какое отношение это имеет к case insensitive collation?
A>В общем рекомендую ознакомиться со статьей в Вики.
Слушай, ... кхм ..., это не ты ли два дня тому назад впервые про то, как strcoll сортирует, узнал?: здесь
A>>with McKinley preceding Mackintosh, as if it had been spelled "MacKinley". Since the advent of computer-sorted lists, this type of alphabetization is less frequently encountered, though it is still used in British phone books.
I>Какое отношение это имеет к case insensitive collation?
К case insensitive collation никак, а вот к collation очень даже.
Я запостил интересный (на мой взгляд) факт про исключения в сортировке по алфавиту (в частности отвечая на твой вопрос: "И если в приложении "Елка" в отсортированном списке идет после "ёлка", то это не по-человечески").
Не хочешь -- не читай. А тем более не отвечай.
I>Слушай, ... кхм ..., это не ты ли два дня тому назад впервые про то, как strcoll сортирует, узнал?: здесь
Да это я. И ты прекрасно это знаешь. strcoll -- какая-то (одна из тысяч-миллионов) функций С++ который меня никогда не интересовал. Меня же интересуют общие знания, не привязанные ни к какой конкретной платформе.
Статья в википедии это все что мне хотелось бы знать про collation. Так что твой strcoll идут в сад.
На будущее: захочешь так же ответить -- лучше промолчи
Здравствуйте, Aikin, Вы писали:
A>Статья в википедии это все что мне хотелось бы знать про collation.
Основываясь только на почерпнутых из статьи знаниях попробуй предсказать, каким будет результат case sensitive упорядочения последовательности abx, aBy, abz, aBx, aby, aBz. А case insensitive?
A>>Статья в википедии это все что мне хотелось бы знать про collation.
I>Основываясь только на почерпнутых из статьи знаниях попробуй предсказать, каким будет результат case sensitive упорядочения последовательности abx, aBy, abz, aBx, aby, aBz. А case insensitive?
— The letters A-Z can be sorted in a different order than in English. For example, in Lithuanian, "y" is sorted between "i" and "k".
— Combinations of letters can be treated as if they were one letter. For example, in traditional Spanish "ch" is treated as a single letter, and sorted between "c" and "d".
...
— Even in the same language, different applications might require different sorting orders. For example, in German dictionaries, "öf" would come before "of". In phone books the situation is the exact opposite.