2016-04-27 6 views
1

Ich habe diese Frage überarbeitet, nachdem ich darüber nachgedacht habe, was ich gerne hätte. Die Art, wie ich derzeit nur Text aus einer Datei basierend auf ihrer Steuerrate a.k.a nach Zahlen sortiert. Ich brauche Kontext in einer Textdatei wie folgt zu sortieren:Wie man von der Sortierung der Zahlen zur alphabetischen Sortierung in C++ geht

ursprünglichen Kontext:

schwarzes Auto 200.00
Jumbo Car 82.00
AlphA caR 2932,00

Sortiert Kontext:

AlPha ca 2932,00
schwarzes Auto 200.00
Jumbo Car 82,00

Ein Code, den ich verwenden, wenn ich diesen Code wurde mit durch Steuersatz zu sortieren.

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; 
       } 
      } 
    } 
} 

Wie anders wäre es von Zahlen zum Sortieren von Wörtern über alphabetisch sortiert sein?
Wenn Sie etwas unklar in der Frage sehen, lassen Sie es mich wissen, damit ich es aufräumen kann. Vielen Dank.

+0

Wo genau die für Sie Hold-up ist? – SergeyA

+0

Mein alter Code sortiert die Nummern einer Textdatei, während der neue Code, den ich versuche, den Landkreis alphabetisch sortiert. Offensichtlich ist diese Sortierfunktion, die ich derzeit nur für den Steuersatz habe. – user3029608

Antwort

3

Überhaupt nicht. string ermöglicht den Vergleich von <. Sie müssen nur county in Ihrem Vergleich verwenden.

Der Weg Vergleich funktioniert, Zeichenfolgen früher im Wörterbuch würde gelten als "kleiner" als später. Es würde also genauso funktionieren, wie Sie es erwarten.

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

Ich habe das versucht, aber es würde einfach so laufen, wie es normalerweise war. Und ob ich die Reihenfolge der Swaps unter dem if-Befehl tauschen müsste? – user3029608

+0

Ich bin mir nicht sicher, ob ich Ihre Bedenken vollständig verstanden habe, aber ich hoffe, dass der Code es aufklärt. – SPMP

+0

Ich habe genau den Code ausprobiert, den Sie gerade gepostet haben, und er sortiert die Textdatei nicht korrekt. Es wird nach dem Steuersatz statt nach dem Kreis sortiert. – user3029608

Verwandte Themen