strtok()
-
was waere die neuere/bessere Variante zu strtok?
-
Berichtigung....
Ich hatte jetzt C++ im Kopf. Natürlich kann man das auch dort benutzen, es ist aber nicht unbedingt emfehlenswert, zumal es dort Alternativen gibt (z. B. getline). In C kenne ich keine Alternative...
-
CarstenJ schrieb:
Natürlich kann man das auch dort benutzen, es ist aber nicht unbedingt emfehlenswert, zumal es dort Alternativen gibt (z. B. getline).
getline -> fgets
und was würdest du statt strtok verwenden? Ausser einen selber geschriebenen Token-Iterator?
-
In etwa so...
int main() { stringstream wort; wort << "in:etwa:so" << endl; string blah; getline (wort, blah, ':'); cout << blah; }
-
CarstenJ schrieb:
Ich denke es liegt daran, dass du ein String-Literal übergibst und keinen Zeiger.
Soweit war ich auch schon
Aber warum darf man das nicht? Ich übergebe doch
einen Pointer auf das String-Literal, warum kann strtok nicht damit arbeiten?
-
Du übergibts praktisch einen const char*, obwohl strtok einen char* erwartet.
-
Danke!
-
strtok ist doch immer noch aktuell? Hat eben nur Probleme wegen der Thread Sicherheit. Deswegen gibt es unter POSIX noch die Funktion strtok_r, die auf einem selbst übergebenen Buffer arbeitet.
-
Wie gesagt, hatte mich ja schon korrigiert......
-
kingruedi schrieb:
strtok ist doch immer noch aktuell?
Mir war die Funktion immer schon suspekt...