Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Bestimmte Wörter in einer Datei ersetzen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
11.07.2010, 11:58 Uhr
~Luna1987
Gast


Hallo.

Ich habe einen Text "Romeo and Juliet" und soll dort ale Vorkommen des Wortes "JULIET" durch meinen Namen ersetzen ("ANNE"). Habe auch schon einen "Lösungsansatz" programmiert. Das Problem ist nun aber zsätzlich, das diese Datei nur aus einer Zeile besteht und er nach dem ersten auffinden von JULIET dann aufhört weiter zu suchen. Wie kann ich ihm sagen, dass er weiter suchen soll, bis alle "JULIET" Wörter ersetzt sind?

Hier mein Code:

C++:
#include <fstream>
#include <iostream>
#include <string>
using namespace std;

int main()
{
    ifstream iStream("RomeoJuliet.txt");      
    ofstream tempStream("test.txt");
    string s;
    while (getline(iStream, s))  {
        while(s.find("JULIET", 0) < s.length())    
    s.replace(s.find("JULIET", 0), s.length() - s.find("JULIET", 0), "ANNE");
        tempStream << s << endl;
    }
    
    iStream.close();
    tempStream.close();    
}



Danke im Voraus für eure Hilfe.

Lg Anne
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.07.2010, 14:00 Uhr
0xdeadbeef
Gott
(Operator)


Naja, so wie es im Moment da steht, ersetzt du alles vom ersten Auftreten des Strings "JULIET" bis zum Ende der Zeile mit "ANNE". Denk über diesen Teil noch mal genau nach:

C++:
s.replace(s.find("JULIET", 0), s.length() - s.find("JULIET", 0), "ANNE");


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.07.2010, 15:11 Uhr
~Luna1987
Gast


Hallo oxdeadbeef.
So funktioniert es nun:

C++:
s.replace(s.find("JULIET", 0), 6, "ANNE");


Dank.
Lg Anne :-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: