#1 17. November 2011 Array über Strings Ich möchte einen String in Tokens zerlegen (Separator: " ") und diese in einem Array abspeichern. Die zu zerlegende Eingabe ist 1024 Zeichen lang, die Tokens (Anzahl variabel von 0 bis 512, Länge variabel von 1 bis 1024). Code: ... char input[1024]; fgets (input,1024,stdin); ... while (token != NULL) { token = strtok(NULL, " "); ... } Irgendwie so halt denk ich. Wär cool wenn jemand ein funktionierendes Code-Snippet finden oder kurz coden kann. Danke. + Multi-Zitat Zitieren
#2 17. November 2011 AW: Array über Strings wo ist dein Problem? das wäre eine Möglichkeit: Code: char * arr[1024]; int i = 0; token = strtok(stringToSplit, " "); while (token != NULL) { arr[i] = (char *)malloc(strlen(token) + 1); strcpy(arr[i],token); i++; token = strtok(NULL, " "); } arr[i] = 0; for (int i = 0; arr[i] != 0; i++) { printf("%s\n",arr[i]); } hab den source nicht getestet + Multi-Zitat Zitieren
#3 17. November 2011 AW: Array über Strings in c gibts leider keine fertigen dynamischen arrays wie in vielen anderen programmiersprachen. d.h. du musst dich selber drum kümmern. sprich: speicher reservieren und diesen dann erweitern falls nötig. malloc realloc du kannst aber auch sagen "hey, ich reservier einfach mal 1024 (worstcase) string-pointer. ich habs ja." und nicht vergessen: die ganzen pointer musst du am ende auch wieder freigeben. + Multi-Zitat Zitieren
#4 17. November 2011 AW: Array über Strings Mit ein paar kleinen Modifikationen tut's. Thx. @Murdoc: Ich hab schon gemerkt, dass C nicht dafür da ist, benutzerfreundlich zu sein ^^ + Multi-Zitat Zitieren