C++ Alternative zu strtok () ?
-
Hallo,
da es anscheinend nicht zum guten Stil gehört, C++ mit C zu vermischen, stellt sich mir nun folgende Frage. Ich brauche einen Tokenizer, und dabei bietet sich strtok () recht gut an, wobei ich auch keine große Lust habe selber einen zu programmieren. Gibt es hierzu irgendwelche Std. C++ Funktion, oder ist es etwa "keine Schande", wenn ich statt dessen diese C Funktion nehme ?
[EDIT] Ich habe natürlich schon gesucht, aber nichts gefunden

Danke,
MfG mikey.
-
Benutze boost::algorithm::split
Die Dokumentation findest du hier
-
Boost.Tokenizer z.B.
Es gab aber glaub ich auch hier im Forum ein paar Threads dazu, kannst ja schauen, ob die Suchfunktion was ausspuckt.
-
Oh, danke nette Variante, aber es ist keine Standard C++ Funktion in dem Sinne, zudem möchte ich wegen einer Funktion nicht gleich das komplette Boost einbinden. Falls es trotzdem nicht anders geht, werde ich gerne auf deinen Vorschlag zurückkommen !
-
Das komplette Boost?! Boost ist keine monolithische Bibliothek. Die meisten Teilbibliotheken (wie zB auch Boost.Tokenizer) sind Header-only, werden also gar nicht extra kompiliert und gelinkt.
Und wenn du ernsthaft dem goldenen Pfad reiner, C-freier/armer C++-Programmierung folgen willst wirst du um Boost nicht herumkommen.
-
....Die meisten Teilbibliotheken (wie zB auch Boost.Tokenizer) sind Header-only, werden also gar nicht extra kompiliert und gelinkt.
Aaah das ist das Stichwort, ist dann dementsprechend ein klarer Vorteil. Okay, dann werde ich mir mal diese Funktion angucken.
Danke für die Vorschläge !
Ääh moment ! Kann es sein, dass die Tokenizer - Funktion, möglicherweise in einer Single - File definiert wiederrum auf andere Boost Funktionen zurückgreift, wobei ich letztendlich z.B. 10 verschiedene Header einbinden müsste um den Code zu kompilieren ??
-
Unter Umständen ja, aber im Prinzip reicht es, wenn du dir das Archiv herunterlädst und einfach den include-Pfad bei deinem Compiler einträgst. So lange du nur die header-only libs bentutz brauchst du keine Bibliotheken.
Und manche Bibliotheken, z.B. das Test-Framework, gibts in beiden Varianten.
-
Ähm stimmt sorry, ich meinte natürlich dass weitere Bibliotheken anstatt Header eingebunden werden könnten. Letzteres wäre natürlich kein großes Problem.

Dann werde ich mich mal an die Sachen machen, und mir Boost genauer ansehen.
MfG mikey.
-
So, ich hab die Tokenizer - Funktion gefunden, tatsächlich nur in einer Headerfile definiert, super ! Sind sogar ein paar Samplecodes dabei.
Danke!
MfG mikey.