Durch Kommas getrennte Zeichenfolgen mit Stringstream trennen
In C ist Stringstream ein leistungsstarkes Werkzeug zum Bearbeiten von Zeichenfolgen und zum Extrahieren von Daten. Während durch Leerzeichen getrennte Zeichenfolgen problemlos getrennt werden können, erfordern durch Kommas getrennte Zeichenfolgen einen leicht modifizierten Ansatz.
Ursprünglicher Ansatz:
Der folgende Code demonstriert den ursprünglichen Ansatz mit Stringstream um Zeichenfolgen zu trennen Leerzeichen:
std::string str = "abc def,ghi"; std::stringstream ss(str); string token; while (ss >> token) { printf("%s\n", token.c_str()); }
Ausgabe:
abc def,ghi
Bei diesem Ansatz können die durch Kommas getrennten Token nicht getrennt werden, da >> Der Operator in Stringstream geht von Leerzeichen als Trennzeichen aus.
Modifizierter Ansatz:
Um durch Kommas getrennte Zeichenfolgen zu trennen, können wir die von Stringstream bereitgestellte Funktion getline() verwenden. Mit dieser Funktion können wir eine Zeichenfolge lesen, bis ein bestimmtes Trennzeichen gefunden wird. Hier ist der geänderte Code:
#include <iostream> #include <sstream> std::string input = "abc,def,ghi"; std::istringstream ss(input); std::string token; while(std::getline(ss, token, ',')) { std::cout << token << '\n'; }
Ausgabe:
abc def ghi
Erklärung:
Die getline()-Funktion liest die Eingabezeichenfolge ss und extrahiert ein Token bis zum ersten Vorkommen des Zeichens, das wir als Trennzeichen angeben (hier es ist ein Komma). Anschließend ordnet es das extrahierte Token der Tokenzeichenfolge zu und gibt bei Erfolg „true“ zurück. Durch den wiederholten Aufruf von getline() können wir die durch Kommas getrennten Token in der Eingabezeichenfolge durchlaufen.
Dieser Ansatz trennt die durch Kommas getrennten Zeichenfolgen effektiv in einzelne Token und ermöglicht so eine weitere Verarbeitung oder Manipulation innerhalb Ihres Programms.
Das obige ist der detaillierte Inhalt vonWie kann ich durch Kommas getrennte Zeichenfolgen in C mithilfe von Stringstream effizient trennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!