Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Alphabetisch ordnen mit list

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
18.01.2004, 18:51 Uhr
Oliver
S2-Pixelgeneral


Hallo,

hab noch ne Frage:

Ich will strings alphabetisch in eine list schreiben:


C++:
list<char*> liste;
char ausdruck[100];
// ...
ifs.open("c:\\songlist");
        cout << "Die Liste wird erstellt, das kann einige Minuten dauern!\n\n\n-->Daten werden gelesen und sortiert...";
        while(!ifs.eof())
        {
            ifs.getline(ausdruck,100);
            for(it=liste.begin();it!=liste.end();it++)
            {
                if(strcmp(smallword(ausdruck),smallword(*it))<0)
                {
                    liste.insert(it,ausdruck);
                    goto next;
                }
            }
            liste.push_back(ausdruck);
next: ;

        }

        for(it=liste.begin();it!=liste.end();it++)
            {
                strcpy(ausdruck,*it);
            }

        ifs.close();
        ifs.clear();




In der Datei steht


Code:
b
a
c





Aber bei der Ausgabe kommt gar nichts raus. Es wird nur 4 mal "" ausgegeben.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )

Dieser Post wurde am 18.01.2004 um 18:51 Uhr von Oliver Müller editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.01.2004, 18:55 Uhr
virtual
Sexiest Bit alive
(Operator)


Ihhh, goto ohne Grund!!!
Probiers doch einfach so:

C++:
     ...
     while(!ifs.eof())
        {
            ifs.getline(ausdruck,100);
            liste.push_back(ausdruck);
        }
     liste.sort(); // LIste sortieren
     ...


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.01.2004, 18:59 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


und wenn du schon die stl nimmst verwende gleich einen std::string und nicht ein char-array
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.01.2004, 19:04 Uhr
Oliver
S2-Pixelgeneral


@virtual:

Die "smallword-funktion" wandelt die vorhandenen Großbuchstaben in kleine um. Und sort sortiert doch die Adressen der Strings und nicht die Strings selber.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.01.2004, 19:51 Uhr
virtual
Sexiest Bit alive
(Operator)


Ja, ich würde Windalfs tipp beherzigen und mit string arbeiten. hatte ich auch - ohne den Quelletxt genau gelesen zu haben - vorausgesetzt: In der Schleife wird ausdruck jedesmal erneut überschrieben, so daß nachher alle Listenelemente den gleichen Inhalt haben. Würde ich bleiben lassen.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
18.01.2004, 20:10 Uhr
Oliver
S2-Pixelgeneral



C++:
list<string> liste2;
    list<string>::iterator it2;

    liste2.push_back("b");
    liste2.push_back("C");
    liste2.push_back("A");

    liste2.sort();

    for(it2=liste2.begin();it2!=liste2.end();it2++)
        cout << *it2;



Dann hab ich allerdings noch mit der Großschreibung das Problem, kann man das irgendwie bei sort beeinflussen?
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: