3

重複の可能性:
C の自然な並べ替え - 「数字と文字を含む文字列の配列」

qsort と strcmp を使用して C で文字列をソートする場合、英数字エントリ (通常は数字で終わる文字列) が次のように奇妙にソートされるという問題があります。

  • エントリー1
  • エントリー12
  • エントリー2

望ましい動作は次のとおりです。

  • エントリー1
  • Entry1_new
  • エントリー2
  • エントリー12

これを行う最も簡単な方法は何ですか?

ありがとう

4

1 に答える 1

1

並べ替えについて奇妙なことは何もありません。'1' は '2' の前に来るので、'Entry1' を持つ文字列は 'Entry2' を持つ文字列よりも前になります。これが strcmp の定義方法です。別の並べ替え順序が必要な場合は、いつでも別の並べ替え関数を作成できます。

于 2011-07-27T16:57:02.073 に答える