So,
ich denke, dass ich die Endlosschleife und alle anderen Probleme raushaben sollte.
Das mit dem Replace von der cplusplus-Seite hab ich auch gecheckt. Aber ich will ja nicht den ganzen Satz mit einem anderen, wo die "e"s durch "o"s wurden überschreiben. Ich will ja lediglich, dass in dem String die "e"s gefunden werden und überschrieben werden.
Mein Programm sieht jetzt übrigens so aus:
PS: Das mit der Replace Funktion ist nur so dahingeschrieben zum Probieren.
Alternativ habe ich noch was anderes gefunden.
Da wird mir aber angezeigt, dass er #include "ReplaceAll.h" nicht öffnen kann.
Außerdem müsste ich dann ja immer bei "assert" den fertigen Satz selber aufschreiben, was ja eigentlich automatisch geschehen sollte.
ich denke, dass ich die Endlosschleife und alle anderen Probleme raushaben sollte.
Das mit dem Replace von der cplusplus-Seite hab ich auch gecheckt. Aber ich will ja nicht den ganzen Satz mit einem anderen, wo die "e"s durch "o"s wurden überschreiben. Ich will ja lediglich, dass in dem String die "e"s gefunden werden und überschrieben werden.
Mein Programm sieht jetzt übrigens so aus:
PS: Das mit der Replace Funktion ist nur so dahingeschrieben zum Probieren.
#include <string>
#include <iostream>
using namespace std;
int main ()
// Satzeingabe
{
string satz = "Drei Chinesen mit dem Kontrabass.";
char c;
int laenge = satz.size();
char buchstabe;
cout << "Waehle einen Buchstaben, um die Anzahl der Zeichen und die Häufigkeit des Buchstaben anzeigen zu lassen: ";
cin >> buchstabe;
int anzahl = 0;
for(int i=0; i<laenge; i++)
{
if(satz==buchstabe) anzahl++;
}
cout << "\n\nDie Laenge des Strings ist: " << laenge;
cout << "\n\nDie Anzahl ist: " << anzahl << endl;
// Frage, ob noch ein Zeichen ersetzt werden soll
char ans;
do
{
cout<< "Willst du noch ein Zeichen ersetzen? (j/n)?\n";
cout<< "Tippe 'j' oder 'n'.\n";
cin >> ans;
}
while((ans !='j')&&(ans !='n')&&(ans !='j')&&(ans !='n'));
// Zeichen im String ersetzen
string satz2 = "Drei Chinesen mit dem Kontrabass.";
string str=satz2;
str.replace("e","o");
cout << str << endl;
return 0;
}
#include <iostream>
using namespace std;
int main ()
// Satzeingabe
{
string satz = "Drei Chinesen mit dem Kontrabass.";
char c;
int laenge = satz.size();
char buchstabe;
cout << "Waehle einen Buchstaben, um die Anzahl der Zeichen und die Häufigkeit des Buchstaben anzeigen zu lassen: ";
cin >> buchstabe;
int anzahl = 0;
for(int i=0; i<laenge; i++)
{
if(satz==buchstabe) anzahl++;
}
cout << "\n\nDie Laenge des Strings ist: " << laenge;
cout << "\n\nDie Anzahl ist: " << anzahl << endl;
// Frage, ob noch ein Zeichen ersetzt werden soll
char ans;
do
{
cout<< "Willst du noch ein Zeichen ersetzen? (j/n)?\n";
cout<< "Tippe 'j' oder 'n'.\n";
cin >> ans;
}
while((ans !='j')&&(ans !='n')&&(ans !='j')&&(ans !='n'));
// Zeichen im String ersetzen
string satz2 = "Drei Chinesen mit dem Kontrabass.";
string str=satz2;
str.replace("e","o");
cout << str << endl;
return 0;
}
Alternativ habe ich noch was anderes gefunden.
Da wird mir aber angezeigt, dass er #include "ReplaceAll.h" nicht öffnen kann.
Außerdem müsste ich dann ja immer bei "assert" den fertigen Satz selber aufschreiben, was ja eigentlich automatisch geschehen sollte.
#include <string>
#include <iostream>
#include <cassert>
#include "ReplaceAll.h"
using namespace std;
int main ()
// Satzeingabe
{
string satz = "Drei Chinesen mit dem Kontrabass.";
char c;
int laenge = satz.size();
char buchstabe;
cout << "Waehle einen Buchstaben, um die Anzahl der Zeichen und die Häufigkeit des Buchstaben anzeigen zu lassen: ";
cin >> buchstabe;
int anzahl = 0;
for(int i=0; i<laenge; i++)
{
if(satz==buchstabe) anzahl++;
}
cout << "\n\nDie Laenge des Strings ist: " << laenge;
cout << "\n\nDie Anzahl ist: " << anzahl << endl;
// Frage, ob noch ein Zeichen ersetzt werden soll
char ans;
do
{
cout<< "Willst du noch ein Zeichen ersetzen? (j/n)?\n";
cout<< "Tippe 'j' oder 'n'.\n";
cin >> ans;
}
while((ans !='j')&&(ans !='n')&&(ans !='j')&&(ans !='n'));
// Zeichen im String ersetzen
string satz2 = "Drei Chinesen mit dem Kontrabass.";
replaceAll(satz2 "e", "o");
assert(satz2 == "Droi Chinoson mit dom Kontrabass");
}
#include <iostream>
#include <cassert>
#include "ReplaceAll.h"
using namespace std;
int main ()
// Satzeingabe
{
string satz = "Drei Chinesen mit dem Kontrabass.";
char c;
int laenge = satz.size();
char buchstabe;
cout << "Waehle einen Buchstaben, um die Anzahl der Zeichen und die Häufigkeit des Buchstaben anzeigen zu lassen: ";
cin >> buchstabe;
int anzahl = 0;
for(int i=0; i<laenge; i++)
{
if(satz==buchstabe) anzahl++;
}
cout << "\n\nDie Laenge des Strings ist: " << laenge;
cout << "\n\nDie Anzahl ist: " << anzahl << endl;
// Frage, ob noch ein Zeichen ersetzt werden soll
char ans;
do
{
cout<< "Willst du noch ein Zeichen ersetzen? (j/n)?\n";
cout<< "Tippe 'j' oder 'n'.\n";
cin >> ans;
}
while((ans !='j')&&(ans !='n')&&(ans !='j')&&(ans !='n'));
// Zeichen im String ersetzen
string satz2 = "Drei Chinesen mit dem Kontrabass.";
replaceAll(satz2 "e", "o");
assert(satz2 == "Droi Chinoson mit dom Kontrabass");
}
Zuletzt bearbeitet: