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 | Gästebuch | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: C-Kurs || MSDN-Online || Source-Corner || 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");


--
Je einfacher eine Konstruktion ist, desto genialer ist sie. Kompliziert bauen kann jeder.
-- Sergei Pawlowitsch Koroljow
 
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) ]  

Antwort hinzufügen
Benutzername (Minimal 2, maximal 24 Zeichen, keine Sonderzeichen)
 
Sicherheitscode


Quellcode:

[cpp][/cpp]
[php][/php]
[vb][/vb]
[code][/code]


Hilfeseiten:

[man][/man]
[man 0][/man]


sonstige Tags:

[quote][/quote]
[edit][/edit]
[url]http://[/url]
[url]hier klicken[/url]

Weitere Formatierungs-
möglichkeiten


Smilies
Weitere Smilies ansehen
Email Notify Aktivieren Sie dieses Kästchen, um über weitere Antworten per Mail informiert zu werden.
Smilies Smilies wie :), ;) usw. in kleine Grafiken verwandeln? (Nur sinnvoll wenn Smilies vom Administrator aktiviert sind.)
Urls umwandeln WWW-Adressen in Links umwandeln
ThWboard Code Soll ThWboard code in ihrer Nachricht aktiviert werden?

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: