Heim >Backend-Entwicklung >C++ >C++-Programm zum Entfernen von Leerzeichen aus Strings mithilfe des String-Streams
Wie in der gegebenen Frage erwähnt, müssen wir mithilfe des String-Streams Leerzeichen aus der Zeichenfolge entfernen. Wie der Name schon sagt, konvertieren String-Streams Strings in Streams. Es funktioniert ähnlich wie cin in C++. Es ist einem String-Objekt zugeordnet, das Zugriff auf den String-Puffer hat, in dem es gespeichert ist.
string s =" a for apple, b for ball"; res = solve(s);
Mit einem String-Puffer lesen wir jedes Wort einzeln und verketten es zu einem neuen String, der unsere Antwort sein wird.
HINWEIS – Stringartige Streams sind im Sstream-Header von C++ verfügbar, daher müssen wir sie einbinden.
Schauen wir uns einige Eingabe-/Ausgabeszenarien an
Angenommen, die Eingabe der Funktion enthält keine Leerzeichen, ist die Ausgabe dieselbe wie die Eingabe -
Input: “Tutorialspoint” Result: “Tutorialspoint”
Angenommen, die Eingabe der Funktion enthält keine Leerzeichen, dann ist das Ausgabeergebnis eine Zeichenfolge ohne Leerzeichen -
Input: “Tutorials Point” Result: “TutorialsPoint”
Angenommen, dass die von der Funktion akzeptierte Eingabe nur Leerzeichen enthält, kann diese Methode kein Ausgabeergebnis liefern -
Input: “ ” Result:
Stellen Sie sich eine Eingabezeichenfolge mit Zeichen vor.
Überprüft, ob die Zeichenfolge leer ist, und entfernt mithilfe des Schlüsselworts stringstream alle in der Eingabe vorhandenen Leerzeichen.
Dieser Vorgang wird abgeschlossen, bis der String-Stream-Zeiger das Ende der Zeile erreicht.
Wenn das Zeilenende der Zeichenfolge erreicht ist, wird das Programm beendet.
Die aktualisierte Zeichenfolge wird an das Ausgabeergebnis zurückgegeben.
Zum Beispiel haben wir eine Zeichenfolge wie „a steht für Apfel, b steht für Ball“ und müssen sie in „aforapple,bforball“ umwandeln.
Folgen Sie dem detaillierten Code, um Leerzeichen aus einer Zeichenfolgeneingabe zu entfernen und daraus einen Zeichenstrom zu machen -
#include <iostream> #include <sstream> using namespace std; string solve(string s) { string answer = "", temp; stringstream ss; ss << s; while(!ss.eof()) { ss >> temp; answer+=temp; } return answer; } int main() { string s ="a for apple, b for ball"; cout << solve(s); return 0; }
Aforapple,bforball
Wir haben eine andere Möglichkeit, dieselbe Abfrage in C++ zu lösen, indem wir getline verwenden.
#include <iostream> #include <sstream> using namespace std; string solve(string s) { stringstream ss(s); string temp; s = ""; while (getline(ss, temp, ' ')) { s = s + temp; } return s; } int main() { string s ="a for apple, b for ball"; cout << solve(s); return 0; }
Aforapple,bforball
Wir sehen, dass bei Verwendung von String-Streams die Strings in einem Puffer gespeichert werden und wir die Strings wörtlich abrufen und verketten können, indem wir Leerzeichen entfernen.
Das obige ist der detaillierte Inhalt vonC++-Programm zum Entfernen von Leerzeichen aus Strings mithilfe des String-Streams. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!