cathartik
18-04-2007, 09:52
Hallo,
ich versuche einen String an den Leerzeichen aufzuteilen und die einzelenen Zeichenketten in einer STL-Liste list<char*> zu speichern.
list<char*> charlist;
string o1("gerd henni alf ulf robert fritz susi annett sandra");
istringstream isstream1(o1,ios_base::in);
while(!isstream1.eof())
{
char ch[10];
isstream1 >> ch;
charlist.push_back(ch);
}
Das mit dem String unterteilen Klappt auch soweit. Wenn ich die Zeichenkette mit push_back in die liste einfüge, hat sie genau immer den wert eines anderen Namens. Aber wenn ich mir anschliessend die Liesteneinträge ausgeben lasse wird immer nur die letzte Zeichenkette, also "sandra" ausgegeben.
list<char*>::const_iterator char_iter;
for (char_iter=charlist.begin();char_iter != charlist.end(); char_iter++)
{
printf("Eintrag: %s\n *char_iter);
}
Woran liegt das?
ich versuche einen String an den Leerzeichen aufzuteilen und die einzelenen Zeichenketten in einer STL-Liste list<char*> zu speichern.
list<char*> charlist;
string o1("gerd henni alf ulf robert fritz susi annett sandra");
istringstream isstream1(o1,ios_base::in);
while(!isstream1.eof())
{
char ch[10];
isstream1 >> ch;
charlist.push_back(ch);
}
Das mit dem String unterteilen Klappt auch soweit. Wenn ich die Zeichenkette mit push_back in die liste einfüge, hat sie genau immer den wert eines anderen Namens. Aber wenn ich mir anschliessend die Liesteneinträge ausgeben lasse wird immer nur die letzte Zeichenkette, also "sandra" ausgegeben.
list<char*>::const_iterator char_iter;
for (char_iter=charlist.begin();char_iter != charlist.end(); char_iter++)
{
printf("Eintrag: %s\n *char_iter);
}
Woran liegt das?