Replace
-
Hallo liebe C/C++ Community,
Ich bin neu in C und wollte mal fragen wie man in C einen bestimmten txt ersetzt ich weiß wie man die Datei einliest nur leider weiß ich nicht wie man was ersetzt z.b. in Perl gibt es die methode "Pattern" in PHP "str_replace". Wie könnte es in C aussehen?
-
c oder c++?
text? char oder string(wenn wirklich c++)
-
std::string hat die Methoden find() (um dein Muster zu finden) und replace() (um einen Teilstring auszutauschen) - zusammenbauen mußt du dir das schon selber.
(genauso benötigst du etwas handgeschriebenes, wenn du reguläre Ausdrücke finden und ersetzen willst)
-
Könntet mir jmd evt Links zu Tutorials über das Thema geben. Soweit bin ich nun:
#include <stdio.h>
void main ( void )
{FILE *datei;
datei = fopen ( "test.dat" , "r+" );
if (datei == NULL )
{
/*
Da ist wohl ein Fehler aufgetreten! */printf ("\nDie Datei konnte nicht geöffnet werden!\n");
}
else
{
/*
Hier soll der TXT (z.b. 1 wird zu 2) ersetzt werden */fclose (datei);
}}
-
so gehts mit c++ :xmas1:
//DEV C++ 4.9.9.2 #include <iostream> #include <string> #include <fstream> using namespace std; string ersetzen(string s,string such,string ersetz) { int pos=0; while ((pos=s.find(such,pos))<s.size()) { s.replace(pos,ersetz.size(),ersetz); pos++; } return s; } int main() { string s; ifstream fi("dat.txt"); if (!fi) { cout<<"datei nicht gefunden \n"; system("pause"); exit(1); } while (!fi.eof()) { getline(fi,s); cout<<"gelesen "<<s<<endl; s=ersetzen(s,"1","2"); cout<<"ersetzt "<<s<<endl; } system("Pause"); return 0; }