004
09.05.2006, 17:15 Uhr
Poffelnator
|
Das ein Satz in der Regel Länger ist als 11 Zeichen ist mir schon klar. Ich habe den Code von einem bekannten bekommen in der Hoffnung, dass ich den Fehler finden kann. Da ich dann das Programm mit einem Debugger auseinander nehmen wollte, habe ich das Array von 100 auf 11 Zeichen gesetzt.
Wie ich den Fehler behoben habe:
C++: |
int helpvar = 0;
for (int i=0; satz[i]!=0; i++) //satz in hilfsarray übertragen { help[i]=satz[i]; if(satz[i] == ' ') { helpvar++; } };
for (int j=0; /*satz[j]!=0*/ j<=helpvar ; j++) //1.For: zum durchlauf des Satzes { for (i=anfang; satz[i]!=0x20 && satz[i]!=0; i++); { //wenn leerzeichen gefunden i++ und zu For1 ende=i;
for (i=0; i < ende-anfang; i++)satz[anfang+i]=help[ende-i-1]; //3.For:umdrehen des wortes und anschl über i++ weiter {
anfang=ende+1;
};//3.For
};//2.For
};//1.For
|
ich selber hätte es ein wenig anders gemacht:
C++: |
while (schritt>=0) { schritt = satz.find_first_of(" ",index); sub = satz.substr(index,schritt-index); index = schritt +1; reverse(sub.begin(),sub.end()); cout << sub << " "; }
|
Ohne mich auf eignende Erfahrungen stützen zu können, versuche ich doch immer möglichst die Vermischung von c und c++ zu vermeiden, da ich schon des öfteren gehört habe das dies immer eine potenzielle Gefahrenquelle ist. Dieser Post wurde am 09.05.2006 um 17:15 Uhr von Poffelnator editiert. |