Funktion als Ersatz von switch
-
Hi!
ich bin nicht sicher, ob das hierhin gehört, aber ich habe folgende Frage:
ich habe einen Text in einer Datei und möchte nun zählen, wie viele a's, b's, c's, usw. in der Datei vorhanden sind. Dazu lese ich im Moment jedes Zeichen ein und prüfe welches es ist (hier die switch-Abfrage), um dann eine Variable zu erhöhen.
Da wollte ich fragen, ob das auch anders geht, und wenn ja, wie.
Danke im Voraus!
-
Nimm eine std::map.
http://www.cplusplus.com/reference/stl/map/
Damit ist die Aufgabenstellung Pipifax.
-
hört sich lustig an. Ich werd da mal nen bisschen rumprobieren. Danke!
-
SeppJ schrieb:
Damit ist die Aufgabenstellung Pipifax.
also ich hab jetzt nen bisschen damit rumgespielt und herausgefunden, wie man zugehörige Werte ausgibt. doch kann man anstatt Werten ausgeben auch Funktionen aufrufen/Variablen erhöhen? Und wenn ja, wie?
-
Eine Möglichkeit wäre Funktionen in der Map zu speichern. Ansonsten, Wert rausholen (per Ref.) und verändern.
-
http://www.cplusplus.com/reference/stl/map/operator[]/
Du solltest googeln lernen ...
-
theta schrieb:
Eine Möglichkeit wäre Funktionen in der Map zu speichern
Wie geht das? bei mir funktioniert das nicht:
int ae(int a); //a erhöhen int main() { int a=0; map<char,int> Buchstabe; Buchstabe['a']=ae(a); //einzelne Zeichen aus der Datei einlesen Buchstabe[DateiInhalt]; cout<<"Anzahl a's: "<<a; } int ae(int a) { a++; return a; }da bleibt a bei mir 0
-
a wird ja auch nirgendwo verändert. Grundlagen von Funktionen, Funktionsparametern, Variablen, Referenzen und Gültigkeitsbereichen angucken, wenn du das anders siehst.
Warum nicht
++Buchstabe['a'];?
-
SeppJ schrieb:
Warum nicht
++Buchstabe['a'];?ok, das war unüberlegt von mir. Danke, so klappts!