Anzahl der wiederholenden Buchstaben im String zählen
-
Dieser Beitrag wurde gelöscht!
-
Moin @learningbydoing,
Du brauchst eine Variable, die du bei einem Fund des gewünschten Buchstaben inkrementierst.
Den gesuchten Buchstaben vergleichst Du (if ...) mit dem Inhalt (char) in der aktuellen Position (i, Achtung, die Position fängt bei 0 an).
Zuletzt gibst Du die ggf. aufsummierte Variable aus.
BTW. In C++ wird gerne std::string anstelle von einem Char-Array verwendet.
-
@Helmut-Jakoby Perfekt, danke.
Das hat mir sehr geholfen.
-
Was ist an der Frage jetzt anders als an deiner vorherigen? Wenn du das nicht auf dieses gleichartige Problem übertragen kannst, wird das nichts mit Learning by Doing.
-
Nochmal die Frage: willst du C++ oder C lernen? Weil das hier ja der Forumsbereich C++ ist.
Hier gilt im Regelfall für Texte: nimm nicht
char[]
, sondernstd::string
.Also:
// nicht: char Str[] = "Teste Programme mit dem Buchstaben e"; // sondern std::string Str = "Teste Programme mit dem Buchstaben e";
Dann kannst du die Länge auch einfach mit
Str.size()
oderStr.length()
anfragen und brauchst keinsizeof
, das sowieso nicht mehr funktioniert, sollte das Array zB durch Übergabe an eine Funktion in einen Pointer zerfallen sein. (Abgesehen davon, dass du häufig bei C-Strings die Länge gar nicht brauchst und stattdessen einfach auf den Nullterminator checken kannst)Und übrigens ist
sizeof(char)
per Definition 1. Immer.Dafür enthält dein
sizeof(Str)
den Nullterminator. Du kannst also auch noch leichter um 1 daneben liegen.
-
In C++ würde man sowieso nicht mit einer Zählvariable durch eine Sequenz gehen, sondern mit einer range-based Schleife. Sofern man so etwas denn überhaupt selber ausprogrammieren würde, siehe Antwort im anderen Thread.