Как отсортировать имена файлов с возможно незаполненными номерами в C ++? - PullRequest
0 голосов
/ 09 января 2010

Мне нужно отсортировать имена файлов, которые могут иметь общий корень, но затем следуют числа, которые не обязательно дополняются равномерно; Одним из примеров является то, что вы получаете при переименовании нескольких файлов в Windows.

filenamea (1) .txt filenamea (2) .txt ... filenamea (10) .txt ... filenamea (100) .txt ... filenameb.txt ... filenamec (1) .txt filenamec (2) .txt

и так далее ...

Ответы [ 2 ]

5 голосов
/ 09 января 2010

Уже есть похожие вопросы, я знаю о Сортировка по строке, которая может содержать числа и Как реализовать алгоритм естественной сортировки в C . Так что вы также можете искать там больше вдохновения и помощи.

Ответы на оба вопроса предполагают, http://www.davekoelle.com/alphanum.html,, что в основном и было то, что предложил Паскаль Куок.

Вы также можете посмотреть статью Cror Horror, где связаны некоторые другие алгоритмы: Сортировка для людей: естественный порядок сортировки

1 голос
/ 09 января 2010

Одним из решений является обработка чисел (последовательных последовательностей цифр) как отдельных букв с точки зрения лексикографического порядка.

Тогда «filenamea (3) .txt», «filenamea (20) .txt» и «filenamea (100) .txt» имеют одинаковую длину и в итоге сортируются в этом порядке, что, как я понимаю, ты хочешь (?)

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