Zeichen in Textzeile zählen (Schleifen, C++ Strings)



  • Hallo,
    ich bin komplette Anfänger im programmieren und habe einige Probleme bei der folgenden Aufgabe:

    Schreiben Sie ein C++ Programm, welches einen einzeiligen Text einliest sowie eine Aneinanderreihung zu zählender Zeichen (wird auch als einzeiliger Text eingelesen). Das Programm soll dann ausgeben, wie oft jedes zu zählende Zeichen in dem Text vorkommt. Hinweise: Leerzeichen sowie Satzzeichen (Punkt, Komma, Ausrufezeichen etc.) können sowohl im Eingabetext als auch bei den zu zählenden Zeichen vorkommen, siehe Testläufe. Groß- und Kleingeschriebene Buchstaben werden als unterschiedlich behandelt und somit getrennt gezählt, siehe Testläufe. Dies sollte die Aufgabenstellung für Sie vereinfachen. Die zu zählenden Zeichen sollen in der Reihenfolge ausgegeben werden, wie Sie auch mittels der Eingabe abgefragt wurden.

    Ich habe schon einen theoretischen Ansatz. Ich wollte bei strings Zeichen für Zeichen miteinander vergleichen und dann falls es Gemeinsamkeiten gibt, diese zählen. Ich weiß aber leider nicht wie ich das genau formal notieren muss. Hätte jemand einen Ansatz für mich?

    {
    	string text;
    	string zeichen;
    	unsigned int pos;
    	unsigned int pos1;
    	cout << "Bitte geben Sie den Text ein: ?";
    	getline(cin, text);
    	cout << "Bitte geben Sie die zu zaelende Zeichen ein: ?";
    	getline(cin, zeichen);
    
    	for (pos = 0;pos1 = 0; pos < text.length(), pos1< zeichen.length(); pos++,pos1++)
    	{
    		
    			if (text.at(pos) == zeichen.at(pos1))
    			{
    				cout << "Das Zeichen " << text.at(pos1) << " kommt " << pos + pos << " mal im Text vor." << endl;
    				break;
    
    			}
    		
    
    	}
    
    	system("PAUSE");
    	return(0);
    }
     
    Liebe Grüße Jonas

  • Mod

    Eine verschachtelte Schleife macht man, indem man Schleifen, äh, verschachtelt. Also einfach eine innere Schleife im Codeblock einer äußeren Schleife haben:

    for (irgendwas)
    {
        for(irgendwas anderes)
        {
            ....
        }
    }
    

    Ansonsten hast du die richtige Idee.



  • Ich wollte bei strings Zeichen für Zeichen miteinander vergleichen und dann falls es Gemeinsamkeiten gibt, diese zählen.

    Formuliere das erst in deutsch weiter aus. Dann fällt dir die Übersetzung in C++ vielleicht leichter.



  • @JR1608 sagte in Zeichen in Textzeile zählen (Schleifen, C++ Strings):

    ...
    Hinweise: Leerzeichen sowie Satzzeichen (Punkt, Komma, Ausrufezeichen etc.) können ...auch bei den zu zählenden Zeichen vorkommen ...

    Sollen die dann auch mitgezählt werden? Oder nur Buchstaben? Oder nur Buchstaben und Ziffern?



  • @Belli Die sollen auch mitgezählt werden



  • Sobald du die Aufgabe fertig hast, könntest du dir dann auch https://en.cppreference.com/w/cpp/algorithm/count anschauen. Viele Funktionen gibt es nämlich schon fertig programmiert.


Log in to reply