Forum: Mikrocontroller und Digitale Elektronik string und/oder array in c bearbeiten


von dura (Gast)


Lesenswert?

ich suche nach einer lösung in dem ich einzelne string in 
unterschiedliche variablen kopiern kann

aufgabe:
die einzelnen wörter hier im satz "Wie ist dein Name:" trennen und in 
unterschiedliche arrays hinterlegen. so dass später die reihenfolge von 
den wörter verändert werden kann.

ich schaffe es die wörter getrennt auszugeben aber nicht in 
unterschiedliche arrays zu kopieren.

könnte mir da jemand helfen?


const char satz[80] = { "Wie ist dein Name:" };
int i, j, a, b, c;
char wort[10];
char worter[5][10] = {0};

printf("%s\n",satz);

for(i=0; i<=50; i++)
{
  if (satz[i] == ' ')
  {
    for(j=0, a=b; j<i-b; j++, a++)
    {
      wort[j] = satz[a];
    };
    wort[j] = '\0';
    printf("%s\n",wort);

    strcpy(worter[c], wort);
    b=i+1;
    c++;
    }
  }
return 0;
}

von cla (Gast)


Lesenswert?

split Befehl ...

von Klaus W. (mfgkw)


Lesenswert?

oh gott
Vielleicht erstmal ein C-Buch durchackern?

Ansonsten: strtok() verwenden

von Klaus W. (mfgkw)


Lesenswert?

Split? War das nicht das eklige süße Eis?

von Karl H. (kbuchegg)


Lesenswert?

Wenn du b und c nach auf 0 initilaisierst, bist du schon einen Schritt 
weiter.
Allerdings solltest du noch berücksichtigen, dass bei dir nur ' ' als 
Wortende zulässig ist. Das "Name:" hat aber hinten nach kein ' ' mehr, 
welches es als Wort identifizieren würde.
Und dann läuft dann natürlich noch deine for-Schleife auf Teufel komm 
raus durch.

(Der ganze Ansatz ist nicht sehr gut. Überleg mal, ob du das anders 
hinkriegst:
  Du gehst durch den String durch und nimmst jeden Buchstaben, der da 
vorhanden ist als Teil des Wortes, es sei denn der Buchstabe ist ein ' ' 
(und noch ein paar andere, aber das kommt später): dann fängt ein neues 
Wort an.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.