3

可能重复:
C 中的自然排序 - “字符串数组,包含数字和字母”

在使用 qsort 和 strcmp 对 C 中的字符串进行排序时,我遇到的问题是字母数字条目(通常以数字结尾的字符串)被奇怪地排序,如下所示:

  • 条目1
  • 条目 12
  • 条目2

期望的行为是这样的:

  • 条目1
  • 条目1_新
  • 条目2
  • 条目 12

最简单的方法是什么?

谢谢

4

1 回答 1

1

这种类型没有什么奇怪的。'1' 出现在 '2' 之前,因此任何具有 'Entry1' 的字符串都将出现在具有 'Entry2' 的任何字符串之前。这就是 strcmp 的定义方式。如果您需要不同的排序顺序,您总是可以编写不同的排序函数。

于 2011-07-27T16:57:02.073 回答