006
25.05.2005, 12:31 Uhr
Lumina
|
Tja, ich hab auch ein oder eher mehrere Stringprobleme. Hab eine Klasse, die einen Zeiger auf einen Stringanfang und einen int-Wert für die Länge des Strings enthält. Diese Klasse heißt CString bei mir.
Nun wollt ich eine Funktion schreiben, die mir aus meinem aktuellen CString-Objekt alle vorkommenden Leerzeichen entfernt. Dazu hab ich mir erst eine Funktion geschrieben, die einen char* nimmt und das ganze mit dem macht:
C++: |
void CString::removeSpaces(char* str) { char* tmp = new char[strlen(str)+1];
for(; *str; str++) {
if (*str != ' ') { *tmp = *str; tmp++; }
} *tmp = 0; // Nullterminierung setzen
// Ergebnis zuweisen: delete [] str; str = tmp; }
|
Das liefert mir aber nur eine Debug Assertion. Hab das ganze auch schon über indizes probiert, aber die Variante mit den Zeigern wäre mir an sich lieber. Anscheinend kann irgendwas nicht richtig vom Konstruktor freigegeben werden, da hatte ich schon mal sowas. aber ich würde gern sehen, wie jemand anderes das angeht...
Bitte helft mir. Danke. -- ******************************************* Willst du glücklich sein im Leben, trage bei zu and'rer Glück, denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück! ******************************************* Dieser Post wurde am 25.05.2005 um 12:32 Uhr von Lumina editiert. |