Как отсортировать строку UTF-8, которая содержит цифры и символы? - PullRequest
2 голосов
/ 13 мая 2011

Я работаю над программой (в с), которая требует сортировки.Одним из требований сортировки является: Сортировка цифр.

Сортировка цифр должна быть завершена от наименее значащей цифры (т. Е. Самой правой цифры) и до самой значимой цифры (т. Е. Самой левой цифры) так, чтобы числа 21,2 и 11 сортируются следующим образом: 2, 11, 21.

Данная строка находится в UTF-8 и может содержать специальные символы, цифры, латинские буквы, кириллические буквы, хирагана / катакана и т. Д.

Это дает следующий порядок сортировки:

1

1a

1b

2

11

110

110a

Генри7

Генри24

Ответы [ 3 ]

2 голосов
/ 13 мая 2011

Я думаю, что вы имеете в виду «сортировать числовые символы в текстовых строках как числа». Вы можете попробовать использовать Qt QString :: localeAwareCompare () , который использует настройки языка и платформы для сравнения строк. По крайней мере, в OS X это должно означать, что он будет учитывать выбранный пользователем язык, который включает в себя поведение, которое вы хотите.

2 голосов
/ 13 мая 2011

Возможно, вы захотите использовать библиотеку ICU (Международные компоненты для Unicode), которая включает API сортировки (сортировки) .

0 голосов
/ 13 мая 2011

Или вы можете преобразовать его в utf16 и отсортировать по значению кодовой точки, если вам не нужны локали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...