Ergebnis 1 bis 4 von 4
  1. #1
    Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    2

    Standard Buchstaben zählen

    Hallo, bräuchte eure Hilfe bei einer Aufgabe.
    Wir müssen für die Schule ein Beispiel programmieren und da ich relativ neu mit C++ arbeite, hab ich ziemliche Anfangsschwierigkeiten beim Schreiben des Programms.

    Aufgabe: Es soll die Anzahl der Buchstaben jedes Wortes bestimmt werden (mithilfe eines Feldes mit Zählern für die Buchstaben je Wort, new() ), ohne das Wort selbst dauernd zu speichern. Weiters soll eine Datei mit den Häufigkeiten der Buchstabenzahlen je Wort erstellt und alle 'e' gezählt werden (find () ). Lies dazu den Text aus der Datei 'Märchenwelt.txt' ein!

    Bin über jegliches Input mehr als dankbar!!

  2. #2
    Mitglied
    Registriert seit
    Jun 2010
    Ort
    Australia
    Beiträge
    223

    Standard Re: Buchstaben zählen

    Wo liegt dein problem? Einen loesungsweg zu finden oder in der umsetzung der Loesung?

  3. #3
    Mitglied

    (Threadstarter)


    Registriert seit
    Dec 2011
    Beiträge
    2

    Standard Re: Buchstaben zählen

    momentan liegt mein größtes problem darin, einzelne wört einzulesen und ihre buchstabenanzahl zu bestimmen. hab da überhaupt keinen plan.

    um mal zu starten, habe ich mal was geschrieben, das alle Buchstaben zählt und ausgibt. um mich dann später nur auf die 'e' zu beschränken, müsste ich ja prinzp die schleife von m nur auf ein if umändern, oder?

    Code:
    #include <iostream> 
    #include <fstream> 
    
    using namespace std; 
    
    // count letters 'a' to 'z' in string s 
    void countLetters( string s ) 
    { 
      int pos, sum = 0; 
      char m; 
      
      // only a to z 
      for( m = 97; m < 123; m++ ) 
      { 
        // start with index = 0 
        pos = s.find( m, 0 ); 
        while( pos != string::npos ) 
        { 
          // adjust index up 
          pos = s.find( m, pos+1 ); 
          // total up this character 
          sum++; 
        } 
        if ( sum > 0) 
        { 
          cout << m << " = " << sum << endl; 
        } 
        sum = 0; 
      } 
    } 
    
    int main() 
    { 
      char c; 
      string str1; 
      ifstream is; 
    
      // open the text file 
      is.open("Maerchenwelt.txt"); 
    
      // loop while extraction from file is possible 
      while ( is.good() ) { 
        // get character from file 
        c = is.get(); 
        cout << c; 
        // build string with all lower case characters 
        c = tolower( c ); 
        str1.push_back( c ); 
      } 
      cout << endl << endl; 
      cout << str1 << endl; 
      // count letters a to z 
      countLetters(str1); 
    
      // close file 
      is.close(); 
        
      cin.get(); // wait     
      return 0; 
    }

  4. #4
    Wahnsinnige Backware Avatar von stefbrot
    Registriert seit
    May 2006
    Ort
    An meinem PC
    Beiträge
    2.490

    Standard Re: Buchstaben zählen

    Um einzelne Wörter zu erhalten musst du beim einlesen einen Vergleich der Buchstaben machen.
    Code:
    // get character from file 
        c = is.get();
        if(c == ' ')
        {
            // mache irgendwas mit dem Wort ...
    
            str1.clear(); // Wprt wieder löschen und "von vorne anfangen"
        } 
        else 
        {
            c = tolower( c ); 
            str1.push_back( c );
        }
    Das nur so ganz grob. Du musst auch noch andere Zeichen berücksichtigen, also Satzzeichen zum Beispiel oder Zahlen, weiß ich nicht wie ihr das handhaben sollt.
    Wenn du ein Wort in einem String hast kannst du die Länge ganz einfach mit der Methode length() bestimmen.

    Der Code zum Buchstabenzählen sieht ganz brauchbar aus. Du musst noch nichtmal ein if einbauen, du kannst die Schleife einfach weglassen und anstatt der Variable m einfach die Konstante 'e' benutzen.

  5.  
     
     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •