Heim > Backend-Entwicklung > C++ > Wie kann ich durch Kommas getrennte Zeichenfolgen in C mithilfe von Stringstream effizient trennen?

Wie kann ich durch Kommas getrennte Zeichenfolgen in C mithilfe von Stringstream effizient trennen?

Barbara Streisand
Freigeben: 2024-11-23 07:18:16
Original
262 Leute haben es durchsucht

How Can I Efficiently Separate Comma-Delimited Strings in C   Using stringstream?

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());
}
Nach dem Login kopieren

Ausgabe:

abc
def,ghi
Nach dem Login kopieren

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';
}
Nach dem Login kopieren

Ausgabe:

abc
def
ghi
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage