Tokenisieren eines Strings ist eine grundlegende Operation in der Programmierung. Bei der Arbeit mit C-Funktionen wie strtok(), die einen char*-String erfordern, kann die direkte Tokenisierung eines std::string jedoch mit Herausforderungen verbunden sein.
Um strtok() mit einem std::string zu verwenden, besteht eine Möglichkeit darin, ihn mit .c_str() in ein const char* umzuwandeln. Dies ist jedoch möglicherweise nicht immer wünschenswert, da es eine schreibgeschützte Darstellung der Zeichenfolge bietet.
Eine geeignetere Lösung ist die Nutzung von std::istringstream anstelle von strtok( ). std::istringstream ermöglicht die Stream-basierte Tokenisierung eines std::string. Hier ist ein Beispiel:
#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; } }
Dieser Code erstellt einen std::istringstream aus dem std::string und liest Token daraus, bis er auf das angegebene Trennzeichen trifft (in diesem Fall „-“).
Für erweiterte Tokenisierungsfunktionen bieten Bibliotheken wie Boost umfassende Lösungen, die im Vergleich zu strtok() mehr Flexibilität und Funktionen bieten.
Das obige ist der detaillierte Inhalt vonWie tokenisiert man einen „std::string' mit C-Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!