[C/C++] Array über Strings

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von 010100111001, 17. November 2011 .

Schlagworte:
  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.
     
  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
     
  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.
     
  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 ^^
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.