Teil Zeichenkette ersetzen?
-
Hallo ich bräuchte Hilfe mit Zeichenketten. ich versuche dass wenn man z.B. Sommerferien eingibt als erste Zeichenkette und als zweite Zeichenkette z.B. Winter, dass er mir Somm ** f ***** ausgibt, also dass er nach den Buchstaben von der 2.ten in der ersten sucht und mit "*" ersetzt:
Das habe ich bisher:
#include <iostream>
#include <string>
using namespace std;int main() {
string text; string chars; char stern = '*'; int j; cout << "1.Zeichenkette: " << endl; cin >> text; cout << " " << endl; cout << "2.Zeichenkette: " << endl; cin >> chars ; text.find(chars, 0); text.substr(0, 50); cout << text.replace(text.find(chars, 0),5, "*") << endl; return 0;
}
Ich würde auch gerne wissen wie man Wörter innerhalb einer Ketten tauschen kann also z.B. Flasche ohne Apfel wird zu: ohne Apfel, Flasche
-
for(int i = 0; i < text.size(); ++i) for(int j = 0; j < chars.size(); ++j) if(text[i] == chars[j]) text[i] = '*';
-
und wo soll ich das einsetzten bei meinen Versuchen kommt nur fehler?(Die Klammern habe ich nicht vergessen mit reinzubringen)
-
Die Vorgehensweise ist ungeschickt, weil nach dem match die Schleife abgebrochen werden kann, besser so:
Vollständiges Beispiel:#include<string> #include<iostream> using namespace std; int main() { string text{"Sommerferien"}; string chars{"Winter"}; for(int i = 0; i < text.size(); ++i) if(chars.find_first_of(text[i]) != string::npos) text[i] = '*'; cout << text; }
-
vielen dank