Hans: durchsuchen

Beitrag lesen

Hi c,

hier mal ein Code, der die Anzahl von "test" in der Datei "input_file" sucht. Die Datei "input_file" steht im gleichen Verzeichnis

#include <stdio.h>

main() {
   int counter=0;
   char buffer[255];
   FILE *input_file;
   char *dummy;

if ((input_file=fopen("./input_file","r")) == NULL) /* Datei oeffnen, filepointer input_file zeigt auf Datei */
      printf("Kann input_file nicht oeffnen !\n");
   else {
      while (fgets(buffer,255,input_file)) { /* liest eine Zeile von Datei */
         /* strstr liefert NULL zurueck, wenn "test" nicht im zu pruefenden String enthalten ist. Zuerst
            in buffer suchen, das Ergebnis nach dummy schreiben. In dummy ist jetzt alles ab "test", sofern
            das Wort "test" in buffer war. Danach solange nach "test" in dummy (nicht mehr buffer, weil dummy
            jetzt der Rest von buffer ist) suchen, bis "test" in der Zeile nicht mehr gefunden wird */
         for (dummy=strstr(buffer,"test"); dummy != NULL; dummy=strstr(dummy,"test")) {
            (*dummy)++; /* eins weiter gehen, sonst findest strstr immer "test" in dummy */
            counter++; /* Anzahl der gefundenen Ergebnisse hochzaehlen */
         }
      }
      fclose(input_file); /* input-Datei schliessen */
      printf(""test" erscheint %d mal\n",counter); /* ist klar, oder ? */
   }
}

Gruß

Hans