frage zu strtok
-
hi leute!
Ich möchte bestimmte zeichen aus meinem string wegbekommen und die anderen zeichen in einen neuen string reinschreiben. Ich habe mir gedacht, dass ich dafür die strtok funktion benutzen könnte. Das Problem ist aber dann wenn ich z.b.:ptoken=strtok(string,"+");
string2[0]=ptoken;hinschreibe und das dann ausgebe in dem string seltsame zahlen stehen. Wie kann ich das vermeiden??
Als Warnung steht da auch dass icheine Typumwandlung vornehmen müsste.
Ich habe das mal davor in meinem programm mit integerwerte gemacht und da habe ich geschrieben:array(0]=atoi(ptoken);
Das hat funktioniert!
Welche Typumwandlung muss ich denn vornehmen wenn er die zeichen in einen string schreiben soll???
-
strtok() liefert Dir einen Zeiger zurück auf den Teil des Strings bis zu Deinem Separator-Zeichen (nullterminiert).
Bei wiederholten Aufrufen wird so Dein ganzer Ursprungsstring gesplittet.Du kannst Dir jetzt entweder die Pointer merken:
char string[] = "Hallo Welt, wie geht es dir?"; char separator[] = "e"; char *pPoi; char *pGrossesArray[100]; int ii, index = 0; pPoi = strtok(string, separator); while(pPoi != NULL) { pGrossesArray[index++] = pPoi; pPoi = strtok(NULL, separator); } for(ii = 0; ii < index; ii++) printf("%s\n", pGrossesArray[ii]);
oder die Einzelteile mit strcpy() in andere strings kopieren (die natürlich groß genug sein müssen) oder so.
Mit Deiner Anweisung
string2[0]=ptoken;
trägst Du nur eine Adresse in ein (vermutlich) char-Array ein.
-
danke!