Parsen von String
-
Hi Community
Ich wollte gerne wissen wie ich einen String den ich als char *buffer bekomme , parsen kann. Ich bekomme immmer einen String der Form: XX-XX-XXXX XX:XX:XX
Jetzt möchte ich noch jedes einzelne Element ( also die geparsten strings ) in ints speichern , da es ja zahlen sind, z.b 12-02-1983 14:43:12.
Ich habe hier mal ein Code beispiel, doch ich bekomme ein Segemntation Fault:#include <stdio.h> #include <stdlib.h> #include <string.h> int main () { char *instring = "12-02-2009 15:42:20"; char *date, *month, *year; date = strtok ( instring, "-" ); month= strtok ( NULL, "-" ); year = strtok ( NULL, "-" ); printf ( "date = %s\nmonth = %s\nYear = %s\n",date,month,year); //parseint(date)->> muss man so die strings in ints casten ? return 0; }
Danke im voraus !
-
month= strtok ( NULL, "-" );
du versuchts einen nullptr zu parsen was nicht geht.
-
Wie kann ich denn meinen Fehler eheben , wenn ich überall instring stehen habe , also dort wo jetzt NULL ist , dann ergibt das auch einen Segmentation Fault ..
-
also ich habe einen anderen Weg gefunden wie ich so einen String parsen kann und zwar mit sscanf... nochmals Danke für eure mühe
-
dsfsdfds schrieb:
month= strtok ( NULL, "-" );
du versuchts einen nullptr zu parsen was nicht geht.
das ist richtig so bei strtok.
strtok verändert das erste Argument, es sollte also nicht read-only sein. Versuchs mal mit
char instring[] = "12-02-2009 15:42:20";