Zeichenweise aus datei lesen



  • habe mal ne frage... und zwar lese ich in meinem Programm eine datei mit fgets zeilenweise ein...

    while ( fgets (buff, MAX, file) != NULL)
    {...
    

    so, jetzt mein Problem: die zeilen die ich einlese, sehen in etwa so aus:

    test , das ist / ein Test/ /
    

    Ich möchte jetzt bei jeder eingelesenen Zeile die Anzahl der '/' zählen und in einer variable speichern... Wie bekomme ich denn heraus wieviele dieser zeichen in jeder zeile stecken? Habe es schon mit getchar versucht, da wird aber die eingabe von der Tastatur eingelesen. das will ich auch nicht
    Hoffe mir kann jemand helfen... danke im voraus.



  • Hallo,

    fgetc könnte dir helfen.



  • Hi,

    da ein char ein Array ist, einfach das char mit einem Zähler durchlaufen und zählen.

    AnzSlash = 0;
    for (Zaehler = 0; Zaehler < Laenge; Zaehler++)
        if (Buff[Zaehler] == '/')
            AnzSlash++;
    

    Diese Lösung setzt voraus, dass du die Länge der Zeile kennst. Wenn du das nicht weisst, musst du dir halt was anderes zur Begrenzung ausdenken.:D

    Hoffe das hilft.



  • Maffe001 schrieb:

    Diese Lösung setzt voraus, dass du die Länge der Zeile kennst. Wenn du das nicht weisst, musst du dir halt was anderes zur Begrenzung ausdenken.:D

    Da fgets() so nett ist und ein '\0' ans Ende des eingelesenen Strings hängt, kann man das ganz einfach mit strlen() ermitteln ;).

    Eine andere Lösung wäre diese:

    ...
    char *p;
    ...
    for(p = buff, anz = 0; *p; ++p)
    {
       if(*p == '/')
       {
          ++anz;
       }
    }
    ...
    


  • const char *s=zeile;
    while( (s=strchr(s+1,'/')) )
      ++anzahl;
    

Log in to reply