Array + Schleife Problem
-
Hallo zusammen,
ich habe gestern damit begonnen, etwas C zu lernen.
Jetzt bin ich gerade am überlegen, wie ich folgendes am besten verwirklichen kann.char befehl[100];
printf("Befehle eingeben : \n");
scanf("%99s",befehle);Befehl1 Befehl2 Befehl3 Befehl4 Befehl5
Nun habe ich die Befehle ja alle in einem "String" namens "befehle"
Jetzt möchte ich anschließend eine Schleife machen, die mir alle eingegebenen Befehle durcharbeitet
system(Befehl1)
system(Befehl2)
usw.Wie kann ich am besten die einzelnen Wörter aus dem "String" bekommen um diese dann in eine Schleife zu schreiben ?
wäre dankbar für ein paar Tipps...
Liebe Grüße
-
Dafür kann man strtok verwenden, du solltest aber mal diverse Literatur konsumieren und nicht für jeden einzelnen Anwendungsfall hier Umfragen starten.
char *befehl; ... for( befehl=strtok(befehle," ");befehl;befehl=strtok(0," ") ) { system(befehl); }
Bei strtok wird der Stringinhalt geändert, ist ebenso auch nicht reentrant und somit auch nicht thread-safe.
Als Stichworte solltest du auch C89 bzw. C99 beachten, beide stellen gültige ANSI C Standards da, je nach deinem Belieben bzw. dem Support durch den Compiler deiner Wahl.
-
Du stehst wirklich ganz am Anfang mit deinen C-Kenntnissen. Ist nicht schlimm!
Ein char befehl[100] nimmt nur einen Befehl mit maximaler Länge von 100 Zeichen auf. Du willst aber wohl mehrere Befehle handhaben. Dann nimm als ersten Ansatz einen zweidimensionalen char-Array char befehl[100][10] für z.B. 10 Befehle. Ein Vertrautmachen mit Pointern kann auch nicht schaden.