strtok hat Problem... mit wert||wert2|||wert3
-
Kann es sein, dass es Probleme gibt, wenn man mehrere Trenner nebeneinander hat und dazwischen nix steht?
|AB1|CSS|||0.1|0|2.0000
|AB1||||0.2|0|3.0000
|AB1||||0.1|0|4.0000da kann ich aber nicht auf das letzte Element zugreifen?! Also weil einmal noch 'CSS' drin steht.
jemand einen Tipp?
gruß
Dominik
-
gibts eine Möglichkeit/andere Methode, die das "überspringen" eines Delimiters verhindert oder nicht macht?
Gruß
Dominik
-
Eine eigene Methode schreiben.
-
Ich versteh das Problem nicht ganz.
#include <stdio.h> #include <string.h> int main(void){ char test[]="|AB1|CSS|||0.1|0|2.0000|||||||foo||||||bar"; char *temp; puts(strtok(test,"|")); while((temp = strtok(NULL,"|"))) puts(temp); return 0; }
Funktioniert bei mir einwandfrei. Getestet auf gcc und VC6. Ausgabe:
AB1 CSS 0.1 0 2.0000 foo bar
-
ja funktioniert schon, wenn du einfach so lange durchläufst bis token = NULL.
So gibt es mal 5 oder weniger aus, je nachdem wie viele "Werte" zwischen den Pipes fehlen.jetzt bissl verständlicher?
gruß
Dominik
-
freakx0 schrieb:
jetzt bissl verständlicher?
Ja. Da musst du dir wohl wirklich was selber basteln.
-
ich glaub ich hab was gefunden...
eine alternative: strsep()
gruß
Dominik