0

現在、C ++を学習していますが、このコードではまだポインターを使用する必要はないと思います。

それで、答えの提案のために、それがポインタなしでできるかどうか私に知らせてください。

質問:charの配列を比較して、昇順で並べ替えるにはどうすればよいですか?

詳細:

目標:名前を挿入時に昇順で並べ替える

ここにあるもの:

char name[1024]; // which is a part of a Struct 

挿入は機能します。挿入したら。名前が入るように順序を並べ替えようとしています

昇順。

私は持っています:

if (RecordCollection[i].name > RecordCollection[i+1].name) // for comparing 

これが問題なのかもしれないと思いますか?C ++はそのように比較できますか?ジョンとエイミーを

その一行?

After that if statement, I am using swapping the elements so they are in correct order. For example: 
If John[0] the current name is > than Amy[1], then copy John to a temporary. 
Then copy Amy to index[0]. 
Then copy John in temporary to index[1].

この質問を入力している間、私は文字を1つずつ比較する必要があると思います... JとA、同じでない場合は

選別。同じ場合は、別の並べ替えが見つかるまで次の文字に移動します。でもそれならどうしたらいいのかわからない

char 1by1を取得します。

4

1 に答える 1

0

文字列を使用している場合は、を参照してくださいstrcmp

strcmp

ゼロより大きい値は、一致しない最初の文字の値が;str1よりも大きいことを示します。str2ゼロ未満の値はその逆を示します。

配列を並べ替えるにqsortは、標準Cライブラリから使用することもできます。

#include <string.h>

int
cmp (const void *p, const void *q)
{
  return strcmp (p, q);
}

qsort (RecordName, nelems, 1024, cmp);
于 2013-02-09T16:48:46.980 に答える