Heim  >  Artikel  >  Backend-Entwicklung  >  Wie teile ich einen String in C mit std::getline() in Token auf?

Wie teile ich einen String in C mit std::getline() in Token auf?

Barbara Streisand
Barbara StreisandOriginal
2024-11-20 16:38:11675Durchsuche

How to Split a String into Tokens in C   Using std::getline()?

String-Tokens mit C std::string trennen

Diese Frage befasst sich mit der Herausforderung, einen C std::string in mehrere Token aufzuteilen. insbesondere die Verwendung des Trennzeichens „;“. Während einige vorgeschlagene Lösungen externe Bibliotheken wie Boost beinhalten, verbieten die Richtlinien für dieses Projekt deren Verwendung. Daher untersuchen wir einen einfacheren Ansatz mithilfe der C-Standardbibliothek.

Eine effektive Methode ist die Verwendung der Funktion std::getline(), die Vielseitigkeit bei der Angabe von Trennzeichen bietet. In diesem Fall können wir den Tokenisierungsprozess wie folgt implementieren:

#include <sstream>
#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<string> strings; // Vector to store split strings
    istringstream f("denmark;sweden;india;us"); // Input stringstream
    string s; // Variable to store individual strings

    while (getline(f, s, ';')) {
        cout << s << endl; // Display split string
        strings.push_back(s); // Store string in vector
    }
}

In dieser Implementierung erstellen wir einen Stringstream aus der Eingabezeichenfolge „Dänemark;Schweden;Indien;us“. Die Funktion std::getline() wird verwendet, um den Stringstream zu durchlaufen und durch das „;“ getrennte Token abzurufen. Trennzeichen. Jedes abgerufene Token wird gedruckt und zur weiteren Verarbeitung dem Zeichenfolgenvektor hinzugefügt.

Durch die Verwendung dieses Ansatzes erreichen wir die gewünschte Tokenisierung der Eingabezeichenfolge, ohne auf externe Bibliotheken angewiesen zu sein und die angegebenen Richtlinien einzuhalten.

Das obige ist der detaillierte Inhalt vonWie teile ich einen String in C mit std::getline() in Token auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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