Heim > Backend-Entwicklung > C++ > Wie tokenisiert man einen „std::string' ohne Verwendung von „strtok()'?

Wie tokenisiert man einen „std::string' ohne Verwendung von „strtok()'?

Susan Sarandon
Freigeben: 2024-11-07 18:34:03
Original
1034 Leute haben es durchsucht

How to Tokenize a `std::string` Without Using `strtok()`?

Tokenisieren eines std::string mit strtok

Tokenisieren eines std::string kann mit verschiedenen Methoden erfolgen. Ein gängiger Ansatz ist die Verwendung der C-Funktion strtok(), die ein Zeichenarray als Eingabe verwendet und es basierend auf einem angegebenen Trennzeichen in Token aufteilt. Allerdings können std::string-Objekte nicht direkt an strtok() übergeben werden, da sie nicht auf ein Zeichenarray verweisen.

Um diese Einschränkung zu überwinden, können wir eine alternative Methode verwenden, um den std::string zu tokenisieren. Eine solche Methode ist die Verwendung eines istringstream-Objekts, das durch Übergabe von std::string an seinen Konstruktor erstellt werden kann. Das istringstream-Objekt kann dann verwendet werden, um Tokens aus der Zeichenfolge mithilfe der Funktion getline() zu lesen, die als zweites Argument ein Trennzeichen verwendet.

#include <iostream>
#include <string>
#include <sstream>

int main() {
    std::string myText("some-text-to-tokenize");
    std::istringstream iss(myText);
    std::string token;
    while (std::getline(iss, token, '-')) {
        std::cout << token << std::endl;
    }
    return 0;
}
Nach dem Login kopieren

In diesem Beispiel wird das istringstream-Objekt zum Lesen verwendet std::string „some-text-to-tokenize“ in eine Reihe von Tokens, getrennt durch das Zeichen „-“. Die Funktion getline() wird verwendet, um jedes Token aus der Zeichenfolge zu extrahieren, und die Token werden dann auf der Konsole ausgegeben.

Eine Alternative zur Verwendung eines istringstream ist die Verwendung eines Dienstprogramms wie Boost.Tokenizer, das Folgendes bereitstellt ein flexiblerer und anpassbarerer Ansatz zur Tokenisierung von Zeichenfolgen. Der istringstream-Ansatz reicht jedoch im Allgemeinen für grundlegende Tokenisierungsanforderungen aus.

Das obige ist der detaillierte Inhalt vonWie tokenisiert man einen „std::string' ohne Verwendung von „strtok()'?. 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