Frage: Text einlesen und Anzahl der Buchstaben bestimmen



  • Hi Leutz,

    Also ich bin noch ein ziemlicher Anfänger in Sachen programmieren und deshalb hab ich auch schon eine Frage. Wie kann ich einen Text einlesen, den zwischenspeichern (in einem char Array?? 😮 ) und herauslesen, wie oft jeder Buchstabe vorkommt?
    einlesen geht in c++ glaub ich mit ifstream in. und wie in c?
    Kann mir einer einen Tipp geben, wie ich das am Besten angehe? 🙂

    mfg max



  • Text einlesen in ein char-array mit man: fgets.

    Buchstaben in Groß/Kleinbuchstaben umwandeln mit man: toupper bzw. man: tolower in einer Schleife.

    Buchstaben zählen gibt es mehrere Methoden: Eine portable und funktionierende wäre über switch case (findest du bestimmt im Buch/Tutorial was zu).



  • hey,

    DANKE für die schnell Antwort.
    Werd ich mir gleich anschauen.

    mfg



  • statt toupper kannst du auch über die asciitabelle den string verändern und dann rauslesen wie oft ein buchstabe vorkommt z.b. wenn du den string wiedergeben willst jedoch mit mit groß oder kleinbuchstaben



  • Stelfer schrieb:

    statt toupper kannst du auch über die asciitabelle den string verändern und dann rauslesen wie oft ein buchstabe vorkommt z.b. wenn du den string wiedergeben willst jedoch mit mit groß oder kleinbuchstaben

    Mir ist ehrlich gesagt nicht ganz klar was du damit meinst 😕



  • TactX schrieb:

    Buchstaben zählen gibt es mehrere Methoden: Eine portable und funktionierende wäre über switch case (findest du bestimmt im Buch/Tutorial was zu).

    Noch einfacher (und ebenfalls portabel) geht es über ein Array:

    int char_count[256]={0};
    unsigned char input[LINE_LEN];
    
    while(fgets(input,LINE_LEN,file)!=NULL)
      for(int i=0;i<strlen(input];++i)
        ++char_count[input[i]];
    
    for(char c=0;c<256;++c)
      printf("Zeichen '%c' kam %d mal vor\n",c,char_count[c]);
    

    (wenn du ganz sicher sein willst, kannst du die 256 ersetzen durch 1<<CHAR_BITS)



  • CStoll schrieb:

    TactX schrieb:

    Buchstaben zählen gibt es mehrere Methoden: Eine portable und funktionierende wäre über switch case (findest du bestimmt im Buch/Tutorial was zu).

    Noch einfacher (und ebenfalls portabel) geht es über ein Array:

    Stimmt. Aber ich bin schon davon ausgegangen, dass er nur die Buchstaben zählen will und nicht auch noch den ganzen Müll drumherum.


Log in to reply