String nach Zeichen durchsuchen



  • Hallo,

    ich möchte nach einem String bzw. Zeichen '>' in einer Datei suchen.
    Folgendes habe ich schon, aber strchr sucht ja nur bis zum ersten Auftreten dieses Zeichens. Wie kann ich die Datei nach allen '>' durchsuchen? 😕

    FILE * datei;
    int find_ok = 0;
    char temp_buffer[30] = "";
    
    datei = fopen("Text.dat","r");
    while(fgets(temp_buffer,29,datei) != NULL)
    {
        if(strchr(temp_buffer,'>') != NULL) find_ok++;
    }
    fclose(datei);
    

    danke schonmal



  • Du könntest in einer while-Schleife hinter der letzten gefundenen Position weitersuchen, bis du ein "nicht gefunden" bekommst:

    char* pos=buffer;
    while((pos=strchr(pos,'>'))!=NULL) find_ok++;
    

    (oder du vergleichst von Hand alle Zeichen des Strings mit deinem Suchwert)



  • Sieht so aus, als ob du die Vorkommen nur zählen willst. Also lies die komplette Datei ein und lauf mit ner Schleife drüber, und vergleiche jedes Element mit deinem Such-Zeichen.



  • DarthZiu schrieb:

    Sieht so aus, als ob du die Vorkommen nur zählen willst. Also lies die komplette Datei ein und lauf mit ner Schleife drüber, und vergleiche jedes Element mit deinem Such-Zeichen.

    so etwa:

    ...
    int c;
    while ((c = fgetc(datei)) != EOF)
      if (c == '>')
         find_ok++;
    ...
    

Anmelden zum Antworten