Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Richtige replace Version

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
17.12.2005, 18:59 Uhr
Gap



Hallo,

Ich kenn mich mit dem std::string Funktionen noch nicht so aus, aber brauche die richtige replace Funktion.

Sie soll aus einem string alle ü, ö, ä etc. durch ue, oe, ae ersetzten.

Das einzige was ich geschafft hab mir zusammen zu basteln ist folgendes:


C++:
void strreplace( string &str, const char *to_replace, const char *replace_with )
{
int i = str.find( to_replace );
while( i != -1 )
{
  str.replace( i, strlen(to_replace), replace_with );
  i = str.find( to_replace );
}
}



Das funktioniert zwar perfekt, jedoch muss ich dann um alle Zeichen zu ersetzen ne Menge Code schreiben:


C++:
strreplace( str, "ü", "ue" );
strreplace( str, "ö", "oe" );
strreplace( str, "ä", "ae" );
strreplace( str, "Ü", "UE" );
strreplace( str, "Ö", "OE" );
strreplace( str, "Ä", "AE" );



Dadurch wird nicht nur der Code unübersichtlicher, sondern auch die Laufzeit schlechter.

Weiß einer von euch eine Funktion, die es leichter macht?

Danke im Vorraus,
Gap
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.12.2005, 20:18 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


naja du kannst ja auch gleich nen ganzen lookuptable übergeben in dem steht was mit was ersetzt werden soll und musst die funktion nicht mehrmals aufrufen...

ups hat der unwissende noch gar nicht gesehen...


C++:
while( i != -1 )


ist evil...

besser


C++:
while(str.find( to_replace )!=std::string:npos)...



verwenden...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 17.12.2005 um 22:50 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.12.2005, 10:32 Uhr
(un)wissender
Niveauwart


Lol, Windalf, dass das von dir kommt. Natürlich hast du recht! Ich glaube, Weihnachten macht dich zu einem besseren Menschen...
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.12.2005, 10:55 Uhr
Gap




Zitat von Windalf:
naja du kannst ja auch gleich nen ganzen lookuptable übergeben in dem steht was mit was ersetzt werden soll und musst die funktion nicht mehrmals aufrufen...


Aber die Laufzeit wird dadurch auch nicht besser, oder?

Ich dachte es gibt vielleicht schon eine Funktion die das macht, schließlich gibts ca. 10 replace Versionen im std::string, die werden ja wohl nicht alle das gleiche bewirken
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.12.2005, 17:26 Uhr
Gap



Keiner eine Idee
 
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: