2016-04-27 15 views
1

私は何か助けたいと思った後、この質問を改訂しました。私は現在、数字でtax_rate a.k.aに基づいてファイルからテキストのみをソートしています。C++で数値をアルファベット順にソートする方法

オリジナルコンテキスト:

黒い車200.00
ジャンボカー82.00
アルファ車2932.00

ソートされたコンテキスト:

私はこのようなテキストファイル内のコンテキストをソートする必要があります

AlPha caR 2932.00
黒い車200.00
ジャンボカー82.00

私は税率によってソートするこのコードを使用していたときに私が使用したコード。

void sort(string county[], double tax_rate[]) 
{ 
    for (int i=0; i<COUNTY_MAX; i++) 
    { 
      for (int j=i+1; j<COUNTY_MAX; j++) 
      { 
       if (tax_rate[i] < tax_rate[j]) 
       { 
        //Swap tax_rate 
        double temp = tax_rate[i]; 
        tax_rate[i] = tax_rate[j]; 
        tax_rate[j] = temp; 

        //Swap county 
        string t = county[i]; 
        county[i]= county[j]; 
        county[j]= t; 
       } 
      } 
    } 
} 

どのように異なることがアルファベット順経由言葉によってソートに番号からソートするだろうか?
質問に不明な点がある場合は、お知らせください。ありがとう。

+0

? – SergeyA

+0

私の古いコードはテキストファイルの番号をソートしていますが、新しいコードはアルファベットで郡を並べ替えようとしています。明らかに、私が現在持っているこのソート機能は、税率に対してのみ機能します。 – user3029608

答えて

3

全くありません。 は、<による比較を可能にする。あなたは比較のためにcountyを使用する必要があります。

比較の仕方は、辞書の早い方の文字列は、後の文字列よりも「小さい」とみなされます。それで、あなたが期待したとおりに動作します。正確にあなたのためにホールドアップされ

void sort(string county[], double tax_rate[]) 
{ 
    for (int i=0; i<COUNTY_MAX; i++) 
    { 
     for (int j=0; j<COUNTY_MAX; j++) 
     { 
      if (county[i] < county[j]) 
      { 
       //Swap tax_rate 
       double temp = tax_rate[i]; 
       tax_rate[i] = tax_rate[j]; 
       tax_rate[j] = temp; 

       //Swap county 
       string t = county[i]; 
       county[i]= county[j]; 
       county[j]= t; 
      } 
     } 
    } 
} 

Running code

+0

私はそれを試みましたが、それは通常と同じように動作します。それに加えて、ifコマンドの下でスワップ順を入れ替える必要がありますか? – user3029608

+0

私はあなたの懸念を完全に理解しているかどうかはわかりませんが、コードがそれをクリアすることを願っています。 – SPMP

+0

あなたがちょうどあなたが投稿したそのコードとまったく同じようにして、テキストファイルを正しくソートしなかった。郡の代わりに税率でソートしています。 – user3029608

関連する問題