Whitespace entfernen
-
Hallo,
ich will mir eine Funktion schreiben, die aus einem String alle leerzeichen entfernt.
Mein Versuch...
#include <iostream> #include <math.h> #include <string> #include <vector> using namespace std; #define PI 3.14159265 string checkWhitespaces(string whitespaces) { cout << whitespaces.length() << endl; for(int i = 0; i < whitespaces.length(); i++) { cout << "i: " << i << endl; if(whitespaces[i] == ' ') { cout << "hier" << endl; } } return(0); } int main() { string t1 = "9564 + 594 - 84515"; cout << checkWhitespaces(t1) << endl; return(0); }Hier bekomme ich beim letzten Zeichen einen Fehler:
expression: invalid null pointerIch hab leider keine Ahnung, wo dieser Fehler zustande kommt. Könnt ihr mir weiterhelfen?
Gruß
-
VIVUSorg schrieb:
string checkWhitespaces(string whitespaces) { ... return(0); // hier. Mach das weg. testweise kannst du ein return ""; hinschreiben. }
-
str.erase(std::remove(str.begin(), str.end(), ' '), str.end());
-
hm ok, das geht.
Kannst du mir sagen, warum? Bzw. warum er mit return(0); Probleme hat?
-
Du hast deine Funktion so deklariert, dass sie einen
stringzurueckgibt. Dann kannst du schlecht 0 returnen, oder?
-
int main() { string str = "Nutze die \t Macht \n !"; string::iterator it = remove_if( str.begin(), str.end(), isspace ); str.erase( it, str.end() ); cout << str; }