strtok in einer schleife / Problem
-
Hallo zusammen,
habe hier einen kleinen Code der leider nicht macht, was ich möchte
Ich möchte eine Zeichenkette eingeben und diese dann per strtok am Leerzeichen trennen und in der schleife die einzelnen Wörter ausgeben .
Kann mir jemand sagen, wo der Fehler liegt ?
Bekomme derzeit immer nur das erste Wort ausgegeben !#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char befehle[100]; char *befehl1; printf("Bitte geben sie die Suchwörter an \n"); scanf("%99s",befehle); for( befehl1=strtok(befehle," ");befehl1;befehl1=strtok(0," ") ) { printf("%s\n", befehle); } return 0; }
Lieben Gruß
-
Hab es auch so probiert, aber selbes Problem:
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char befehle[100]; printf("Bitte geben sie die Suchwörter an \n"); scanf("%99s",befehle); char *ptr; ptr = strtok(befehle, " "); while(ptr != NULL) { printf("%s\n",ptr); ptr = strtok(NULL, " "); } return EXIT_SUCCESS; }
-
Dein Problem ist nicht strtok, sondern die Eingabe. sscanf trennt bei %s die Eingabe nach Whitespaces, also unter anderem nach Leerzeichen. Benutze fgets um ganze Zeilen einzulesen.
-
deranfang schrieb:
printf("%s\n", befehle);
Richtig abschreiben solltest du aber auch als Anfänger schon können.
printf("%s\n", befehl1);
muss es natürlich heissen.