so arbeitete ich auf dem Programm und jetzt bin ich an einem Punkt, wo ich nicht eine Lösung finden können. Ich muss einige weitere Zeichen in der Fext-Datei ersetzen, denn jetzt ersetzt das Programm nur "TIT" durch die Codenummer "* 245 $ a", wenn ich andere Buchstaben auf die gleiche Weise ersetzen möchte, ändert sich das Programm nicht. Weiß jemand, wie ich noch mehr Ersetzungen in der Textdatei implementieren kann? Lassen Sie es mich wissen, wenn es eine bessere Möglichkeit gibt, mehr als 5 Zeichen durch andere zu ersetzen. DankeC++ Wörter in einem String (Textdatei) ersetzen
#include <fstream>
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
char dateiname[64], kommando[64];
ifstream iStream;
cout << "Choose an activity" << endl <<
" s - search " << endl <<
" c - convert" << endl <<
" * - end program" << endl;
cin.getline(kommando,64,'\n');
switch(kommando[0])
{
case 'c':
cout << "Enter a text file!" << endl;
cin.getline(dateiname,64,'\n');
iStream.open("C://users//silita//desktop//schwarz.txt");
case 's':
break;
case '*':
return 0;
default:
cout << "I can not read " << kommando << endl;
}
if (!iStream)
{
cout << "The File" << dateiname << "does not exist." << endl;
}
string s;
char o[] = "TIT";
while (getline(iStream, s))
{
while(s.find(o, 0) < s.length())
s.replace(s.find(o, 0), s.length() - s.find(o, 3),"*245$a");
cout << s << endl;
}
iStream.close();
}
Duplikat dieser http://stackoverflow.com/questions/5343190/how-do-i-replace-all-instances-of-a-string-with-another-string? – fghj
das ist kein Duplikat, weil ich bereits mit einer Längenfunktion arbeite, also kann das nicht die Lösung sein. Das Problem besteht darin, mehr als ein Zeichen zu ersetzen, und dass meine Ersetzungsfunktion (am Ende des Codes) nicht korrekt ist. Die Ausgabe sollte sein: * 245 $ aAnsätze "korporativer Marktwirtschaft" in der Korea-Krise der Frühen fünfziger Jahre/burt meine outpout sieht wie folgt aus: * 245 $ a (der Text folgt in der zweiten Reihe, sollte aber in der gleichen Zeile sein) – silisun