Stringlänge eines Textes aus Textdatei



  • Hey,

    ich habe eine textdatei "text.txt" in welcher ein text mit 1000000 zeichen steht. und nun möchte ich ein c-programm schreiben, was mir diese zeichenanzahl ausgibt, also die stringlänge des textes.

    wie stell ich es an, dass die datei eingelesen wird mir die anzahl ausgegeben wird??

    hab es mit strlen(string)=fgets(text) versucht, aber das funzt nicht 😞

    BITTE HILFE!!



  • Wie wäre es mit fgetc()? Einfach zeichen lesen und einen Zähler inkrementieren. Beim Lesen mit fgetc() natürlich immer schön auf EOF prüfen. Wenn EOF, dann hast du alle Zeichen gelesen (oder es gab einen Fehler).

    man fgetc



  • FILE *fp;
    int count = 0;
    
    fp = fopen("test.txt","r");
    
    while ( fgetc(fp) != EOF )
         count++;
    
    printf("Zeichen in Datei: %d\n", count);
    


  • hey, den link hab ich auch gefunden, aber ich wollte einen weg mithilfe von strleng() finden:

    Die Stelle im Code "???" soll den String des Textes einbinden...aber wie??
    ist ist mein versuch:
    ________________________________________

    int main(void)
    {
    FILE* text;
    size_t size;

    text=fopen("text.txt", "r");

    char string[1000000]= ??? ;

    size = strlen(string);
    printf("Anzahl: %d \n", size);

    fclose(text);

    return 0;

    }
    _______________________________________



  • Der Weg über strlen wäre doppelt gemoppelt, denn du musst ja erstmal in einer Schleife alle Zeichen der Datei in dein Array einlesen. Erst dann kannst du mit strlen() arbeiten. Du willst es ja so haben 🙂

    int i;
    unsigned char text[100000];
    
    for(i=0;(text[i]=fgetc(fp))!=EOF;i++);
    
    printf("Laenge des Textes: %d\n", strlen(text));
    

    //Edit: fgetc liefert unsigned char



  • danke ich probier das mal aus!


Anmelden zum Antworten