Thema: Buchstaben zählen
-
20. 12. 2011, 21:13 #1Mitglied
- Registriert seit
- Dec 2011
- Beiträge
- 2
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!!
-
20. 12. 2011, 22:51 #2Mitglied
- Registriert seit
- Jun 2010
- Ort
- Australia
- Beiträge
- 223
Re: Buchstaben zählen
Wo liegt dein problem? Einen loesungsweg zu finden oder in der umsetzung der Loesung?
-
20. 12. 2011, 23:02 #3Mitglied
(Threadstarter)
- Registriert seit
- Dec 2011
- Beiträge
- 2
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; }
-
21. 12. 2011, 00:17 #4
Re: Buchstaben zählen
Um einzelne Wörter zu erhalten musst du beim einlesen einen Vergleich der Buchstaben machen.
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.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 ); }
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.
-


Zitieren
mehr lesen...







Resident Evil 6 erscheint in...
Heute, 15:21 in gulli:news