strok()
-
Ich habe hier im Forum folgendes gefunden.
int i = 1; char String[] = "Hallo;du,schöne#Welt"; char String2[] = "1;2,3#4"; char* pToken = strtok(String, ";,#"); if (pToken) { printf("Token%d: %s\n", i,pToken); i++; while ( (pToken = strtok(NULL, ";,#")) ) { printf("Token%d: %s\n", i,pToken); i++; } }
Ich jedoch will zwei stings teilen.
Ich weiß das ich strtok() nicht einfach so nutzen kann.
so hätte ich es gern!int i = 1; char String[] = "Hallo;du,schöne#Welt"; char* pToken = strtok(String, ";,#"); char* pToken2 = strtok(String2, ";,#"); char * pNew; if (pToken) { strcpy(pNew,pToken ); strcat(pNew,pToken2 ); i++; while ( (pToken = strtok(NULL, ";,#")) ) { strcat(pNew,pToken ); strcat(pNew,pToken2 ); i++; } }
Das das nicht so geht weiß ich (leider).
Nur was kann ich machen?
oder gibt es eine andere Funktion?
-
Auf manchen Systemen gibt es eine man: strtok_r(), der du zusätzlich einen Kontext mitgeben kannst. Andernfalls könntest du dir selber etwas mit strcspn() zusammenbauen.
-
man: strtok_r(3) gibt es auf POSIX-Systemen. Ist aber afaik kein ISO C.
Ansonsten schreib dir eben so etwas selbst (ist ja keine große Wissenschaft, die dahinter steckt)