2011-07-27 11 views
3

可能性の重複:
Natural sort in C - “array of strings, containing numbers and letters”英数字Cでの文字列の順序を並び替え

のqsortとのstrcmpとC言語で文字列を並べ替える私は、英数字エントリは、一般的に数字で終わる文字列の問題を抱えています次のように奇妙に分類されています:

  • Entry1
  • Entry12
  • ENTRY2

所望の動作がこれです:

  • entry1を
  • Entry1_new
  • ENTRY2
  • Entry12

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

おかげ

+0

Entry01、Entry01_new、Entry02、Entry12などのすべての数値部分に先行ゼロを使用します。そうでなければ、 'strcmp'をダンプし、数値文字列を整数値として認識する独自の文字列比較関数をロールバックする必要があります。 –

答えて

1

ソートについて奇数は何もありません。 '1'は '2'の前に来るので、 'Entry1'を持つ文字列は 'Entry2'を持つ文字列の前に来ます。これはstrcmpが定義されている方法です。別のソート順が必要な場合は、いつでも別のソート機能を記述できます。

+0

ヘルプが必要なソート関数ではなく、比較関数です。 –

+0

あなたの答えをありがとう、私はこれがstrcmpの通常の動作であることを知っています。私の質問は、望ましい動作を達成する最も簡単な方法です。 – Chris

関連する問題