Tokenisieren eines Strings ist eine grundlegende Operation in der Programmierung. Wenn Sie jedoch mit C-Funktionen wie strtok() arbeiten, die einen char*-String erfordern, kann die direkte Tokenisierung eines std::string mit Herausforderungen konfrontiert werden.
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#include #include int main() { std::string myText("some-text-to-tokenize"); std::istringstream iss(myText); std::string token; while (std::getline(iss, token, '-')) { std::cout Dieser Code erstellt einen std::istringstream aus dem std::string und liest Token daraus, bis er auf das angegebene Trennzeichen trifft (in diesem Fall „-“).
Zusätzliche Optionen
Für erweiterte Tokenisierungsfunktionen bieten Bibliotheken wie Boost umfassende Lösungen, die im Vergleich zu strtok() mehr Flexibilität und Funktionen bieten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3