Zeichen in string ersetzen
-
Hy,
wie kann ich in einem string ein bestimmtes zeichen ersetzen?
Bsp.:
string s="C:\Ordner1\Ordner2\Ordner3\"; //alle "\" in "/" umwandeln //jetzt ist s="C:/Ordner1/Ordner2/Ordner3/"
-
mit std::string::find durchlaufen und immer ersetzen.
-
3 sec. Google:
// Zu durchsuchender String string path("c:/corba/doc/readme.doc"); // Suche nach erstem Slash string::size_type first = path.find('/'); // Suche nach letztem Slash string::size_type last = path.rfind('/'); // Suche nach nicht vorhandenem Zeichen if (path.find("X") == string::npos) cout << "Zeichen X nicht gefunden".Dann einfach die Position mit deinem zeichen überschreiben.
Weiters hier
MFG
Ace//EDIT: War einer schneller
-
mit s.find() bekomme ich das erste Auftreten des gesuchten Zeichen und mit s.rfind() das letzte Auftreten. Aber was ist mit den anderen Zeichen, die ich auch ersetzen will?
-
Du kannst std::string.find ein argument übergeben, welches angibt, von wo aus du suchen willst. Das ist dann eben lastfound+1.
-
oder das gefundene erst ersetzen und dann weitersuchen, geht hier auch
-
hmm naja wenn du letzte pos net angibst, ist es aber unperformanter...
-
Was spricht gegen das hier:
#include <algorithm> #include <string> using namespace std; string path = "C:\\MyPath\\MySubPath\\File.ext" replace(path.begin(), path.end(), '\\', '/');MfG SideWinder
-
Memo an mich: nächstes Mal nicht nur die String-Methoden sondern auch die STL-Algorithmen durchsuchen...