Wörter in einer Datei zählen



  • Wie muss ich ein Programm schreiben, um bestimmte Wörter aus einer txt datei zu zählen.

    #include <stdio.h> etc. ist mir schon klar.
    Das Problem bei mir ist, das ich mehr oder weniger in den Vorlesungen "geschlafen" habe, und die leichtesten sachen nicht hinbekomme.
    Hab mir mittlerweile Bücher gekauft und Seiten durchgelesen, doch es will einfach nicht in mein Kopf. Ich kapiere es einfach nicht.

    Mein erstes Problem:
    Mit welcher Anweisung bringe ich das Programm dazu, meine txt datei überhaupt einzulesen?
    Zweites Problem:
    Wie kriege ich das hin, das die Ausgabe zum Beispeil so erfolgt:
    a=1mal
    b=1mal
    c=3mal

    also das die Ergebnisse untereinander ausgegeben werden.

    Und natürlich mein 3. Problem:
    Wie bringe ich das Programm dazu, die Wörter zu zählen.

    Es darf kein if oder else benutzt werden o.ä.
    Also alles muss mit scanf, printf und dem Modulo Operator gemacht werden.
    Mit dem simpelsten Anweisungen.

    Kleine Frage nebenbei:
    Wie lerne ich das am besten. Wie soll ich vorgehen.
    Ich bin echt am verzweifeln und denk schon darüber nach, alles hinzuschmeißen.
    Es liegt nicht nur am Programmieren. Informartik zum Beispiel ist genau so schlimm bei mir.



  • ulan schrieb:

    Es darf kein if oder else benutzt werden o.ä.
    Also alles muss mit scanf, printf und dem Modulo Operator gemacht werden.

    das kannste vergessen. damit kriegste ja nicht mal die datei geöffnet.

    ulan schrieb:

    Wie lerne ich das am besten. Wie soll ich vorgehen.
    Ich bin echt am verzweifeln und denk schon darüber nach, alles hinzuschmeißen.
    Es liegt nicht nur am Programmieren. Informartik zum Beispiel ist genau so schlimm bei mir.

    was machst du denn für'ne ausbildung?
    🙂



  • #include <stdlib.h>
    
    int main() {
            system("cat deine_datei.txt | egrep -o '\\w+' | sort | uniq -c | sort -n | awk '{print $2, \"=\", $1, \"mal\"}'");
            return 0;
    }
    

    😕



  • minhen schrieb:

    #include <stdlib.h>
    
    int main() {
            system("cat deine_datei.txt | egrep -o '\\w+' | sort | uniq -c | sort -n | awk '{print $2, \"=\", $1, \"mal\"}'");
            return 0;
    }
    

    😕

    Das entspricht wohl "nicht ganz" den gestellten Anforderungen..
    Alles Gute zum Geburtstag btw.



  • Es produziert exakt seine gewünschte Ausgabe ohne if und else o.ä. zu verwenden. Er kann ja noch ein scanf für den Dateinamen, irgendein printf und ein sinnloses Modulo einbauen, wenn's ihm Spaß macht 😉

    Wer hat Geburtstag?



  • minhen schrieb:

    Es produziert exakt seine gewünschte Ausgabe ohne if und else o.ä. zu verwenden.

    es setzt zu viel andere software voraus. sowas ist mist.
    🙂



  • ulan schrieb:

    Das Problem bei mir ist, das ich mehr oder weniger in den Vorlesungen "geschlafen" habe, und die leichtesten sachen nicht hinbekomme.

    Tja, Faulheit muß bestraft werden - wenn du den Kurs nächstes Jahr wiederholst, bist du bestimmt aufmerksamer 😃

    Mein erstes Problem:
    Mit welcher Anweisung bringe ich das Programm dazu, meine txt datei überhaupt einzulesen?

    Mit fopen() öffnest du die Datei, danach kannst du sie je nach Vorlieben mit fscanf(), fgets(), fgetc() oder fread() einlesen.

    Zweites Problem:
    Wie kriege ich das hin, das die Ausgabe zum Beispeil so erfolgt:
    a=1mal
    b=1mal
    c=3mal

    printf("a=1mal\nb=1mal\nc=3mal\n"); *scnr*

    Und natürlich mein 3. Problem:
    Wie bringe ich das Programm dazu, die Wörter zu zählen.

    Willst du einfach nur zählen, wieviele Wörter vorkommen? Oder willst du zählen, wie of ein bestimmtes Wort vorkommt?
    (ersteres geht mit einer einfachen while-Schleife, letzteres wird schwieriger - besonders wenn man if/else nicht benutzen darf)

    Es darf kein if oder else benutzt werden o.ä.
    Also alles muss mit scanf, printf und dem Modulo Operator gemacht werden.
    Mit dem simpelsten Anweisungen.

    Und morgen lernen wir, wie man ein Ikea-Regal aufbaut, ohne Werkzeuge zu verwenden 😃



  • mistfink schrieb:

    minhen schrieb:

    Es produziert exakt seine gewünschte Ausgabe ohne if und else o.ä. zu verwenden.

    es setzt zu viel andere software voraus. sowas ist mist.
    🙂

    Es setzt im Grunde nur ein Linux- oder Unix-System voraus. Denn es handelt sich nur um GNU Tools, die normalerweise schon installiert sind. Selbst Mac OS X hat auf Anhieb keine Probleme damit. Dass Windows da jedoch nicht mitspielt, ist weder meine Schuld noch mein Problem. 😉



  • minhen schrieb:

    Es setzt im Grunde nur ein Linux- oder Unix-System voraus. Denn es handelt sich nur um GNU Tools, die normalerweise schon installiert sind. Selbst Mac OS X hat auf Anhieb keine Probleme damit. Dass Windows da jedoch nicht mitspielt, ist weder meine Schuld noch mein Problem. 😉

    es läuft sogar unter windows, wenn man cygwin installiert hat 🤡



  • minhen schrieb:

    Dass Windows da jedoch nicht mitspielt, ist weder meine Schuld noch mein Problem.

    ja, das ist alles gar kein problem. ich werde demnächst nur noch code schreiben, der zwingend eine powerpoint-installation voraussetzt 🙄


Anmelden zum Antworten