Frage zu Strings
-
@yahendrik ich würde gerne wissen wie ich mithilfe von strings einzelne zeichen zählen kann
-
Woran genau hakt es denn? Auf einzelne Zeichen eines Strings kannst du mit eckigen Klammern zugreifen.
-
Und die Anzahl der Zeichen bekommst du über die Funktion ".length()" des String-Objekts raus.
-
@wob ich bin nicht sicher, wie ich die zu zählenden Zeichen auf den string text beziehen soll .
-
Ganz einfach. Du nimmst eine for-Schleife und läufst jedes einzelne Zeichen des Strings durch. Diese Zeichen sind nun der Key einer Map (std::map) und der Value zum Key ist dein Zähler. Nach der for-Schleife machst du eine weitere for-Schleife, die nun die Map durchläuft und die Keys und die dazugehörigen Values ausgibt.
-
...und wenn du noch keine Maps kennst, kannst du das auch lösen:
für jedes Zeichen aus dem String: wenn es das erste Vorkommen dieses Zeichens ist *: zähle, wie oft das Zeichen vorkommt gibt Zeichen und Anzahl aus
Den *-Check kannst du auch weglassen, dann bekommst du bei "HALLO" eben 2x "L" und 2 raus.
Insbesondere für längere Strings (aber auch allgemein) ist die Map natürlich sinnvoller.
-
@out könntest du ein Beispiel geben
-
@Lilly sagte in Frage zu Strings:
@out könntest du ein Beispiel geben
Könntest du eine Suchmaschine deiner Wahl benutzen? Die Referenz von std::map inkl. Beispiel sollte doch wohl zu finden sein.
-
@wob das einzige was mir jetzt noch fehlt ist, wie die die zahlen angezeigt werden.
-
@Lilly Naja Beipiel, da kannst kein Beispiel mehr machen das ist dann schon die Lösung.
int main() { string str{"1111111111"}; map<char,int> m; for(auto c: str) ++m[c]; for(const auto& p : m) cout << p.first << " kommt " << p.second << "x vor." << endl; } Hangel dich da mal durch.