Buchstaben zählen

michelr

Grünschnabel
Hallo,
das unten aufgeführte Programm macht zur Zeit folgendes:
1) Benutzer gibt einen gewünschten Buchstaben ein
2) in der eingegebenen Datei wird nachgeschaut wie oft der Buchstabe darin
vorkommt und die Anzahl ausgegeben.

Code:
int main()
{
cout<<"Dateiname: "<<endl;
string dname;
cin>>dname;
cout<<"Suchbuchstabe: ";
char szeichen;
cin>>szeichen;

fstream Datei(dname.c_str(), ios::in)
int ergebnis=0;
char ch;
  while(Datei.get(ch))
  {
     if(ch==szeichen)
     {
          ++ergebnis;
     }
  }
cout<<"Ergebnis: "<<ergebnis;
return 0;
}

Da der Code nicht von mir ist und ich noch ein ziemlicher Grünschnabel bin habe ich mal folgende Fragen zu dem Programm:
1) was bedeutet das ".c_str()" in der Zeile fstream .....
2) wie kann ich das Programm am besten abändern das er mir alle Buchstaben, die fünf mal in der Datei vorkommen ausgibt

Für eure Hilfe wäre ich sehr dankbar.
 
c_str() ist eine Methode von std::basic_string (und auch std::string), die den vom String verwalteten Text als const char* zu Verfügung stellt. Das ist besonders wichtig, um std::string (dabei handelt es sich übrigens um den C++-Standard-String) gemeinsam mit C-Funktionen nutzten zu können. Doku

2) wie kann ich das Programm am besten abändern das er mir alle Buchstaben, die fünf mal in der Datei vorkommen ausgibt
Ich halte nichts davon, dir die Hausaufgaben zu machen, aber als Tipp: Lege für jeden einzelnen zu erwartendene Buchstaben einen Zähler an und zähle dann bei jedem gefundenen Buchstaben immer den richtigen Zähler hoch (Man kann einen Buchstabenwert auch als Index verwenden). Dazu eignet sich übrigens ein Array ganz gut (int ergebnisse[255]; nicht vergessen, alles auf 0 zu setzen!). Am Ende kannst du alle genügend oft gefundenen Buchstaben ausgeben.
 
Zurück