1

文字列の配列をマージソートすることは可能ですか? たとえば、Cのような文字列の配列がある場合...

arr[0]="Hello";
arr[1]="cat";
arr[2]="there";
arr[3]="apple";
arr[4]="flower";

ソートされた出力は...

apple
cat 
flower
hello
there

また、「こんにちは」と「地獄?」のような 2 つの単語がある場合、どうすればよいかわかりません。どこでも例は常に整数であり、特に C++ では文字列ではありません。

4

1 に答える 1

1

はい、あなたの比較ではstrcmp、C とstd::string::compareC++ に使用します。どちらの関数も文字列を比較し、次の意味を持つ整数を返します...

  • < 0   — 一致しない最初の文字の値が比較文字列で小さいか、またはすべての比較文字が一致するが比較文字列が短いかのいずれかです。

  • = 0   — 比較すると等しい

  • > 0   — 一致しない最初の文字の値が比較文字列でより大きいか、またはすべての比較文字が一致するが比較文字列の方が長いかのいずれかです。

これは、"Hello" と "Hell" も考慮に入れ、"Hello" の前に "Hell" を並べ替えます。

注:あなたが私のようで、結果の意味を思い出すのに苦労している場合。str1比較演算子 (上の例のように)との間に入れるだけstr2です。したがって、たとえば、呼び出しstrcmp(str1, str2)て結果が< 0だった場合は、 のように見てくださいstr1 < str2

于 2013-10-04T23:42:49.073 に答える