Textarbeit strtok
-
Hallo Leute,
bin mal wieder bisschen bei Textarbeit.
übergebe eine Textdatei als Parameter und les sie mit fgets ein.
Jetzt will ich den gesamten Text zerlegen, klappt auch schon ganz gut, bis auf das ich die Whitespaces nicht rausbekommm.
Vlt hat jmd. einen Tipp
Danke#include <stdio.h> #include <stdlib.h> #include <string.h> char buf[128]; int main(int argc, char * argv[]) { FILE* pFile; char* data; char *ret; if(argc != 2) { fprintf(stderr,"ERROR: need file\n"); exit (EXIT_FAILURE);} pFile = fopen(argv[1],"rt"); if(pFile == NULL) { fprintf(stderr,"ERROR: could not open file\n"); exit(EXIT_FAILURE);} while (fgets(buf,128,pFile) != NULL) { data = strtok(buf," -,.?!:;"); printf("%s",data); while(data = strtok(NULL," -,.?!:;")) { printf("%s",data); } } }
-
Warum fügst du dann die Zeichen die dich stören nicht zu den Delimitern dazu? Und was willst du überhaupt erreichen?
-
Du bekommst die whitspaces raus dein Problem ist deine Ausgabe mach doch mal folgendes
printf("%s\n",data);
dann siehst du welche Zeichen du vergessen hast
-
Tipp2: Pass auf wenn du einen bestimmten Whitespace im Delimiter hast, dann kann strtok auch beim ersten Aufruf NULL zurückgeben