Frage zu einer Funktion

  • Themenstarter Themenstarter dnevi
  • Beginndatum Beginndatum
D

dnevi

Hi!
ich hätte mal ne frage zu ner funktion und zwar hab ich im inet folgende funktion gefunden und versuche damit in einem pfad von einem laufenden prozess den ich mir mit GetModulNameEx() auslesen lasse nach den Backslashes um sie mit zwei backslashes ersetzen zu lassen damit ich mit dem pfad arbeiten kann ... das funktioniert aber nicht wenn ich die funktion wie folgt aufrufe...

Die funktion:
Code:
std::string ReplaceString(const std::string &stringSearchString, const std::string &stringReplaceString, std::string stringStringToReplace)
{
        std::string::size_type pos = stringStringToReplace.find(stringSearchString, 0);
        int intLengthSearch = stringSearchString.length();
        int intLengthReplacment = stringReplaceString.length();

        while(std::string::npos != pos)
        {
                stringStringToReplace.replace(pos, intLengthSearch, stringReplaceString);
                pos = stringStringToReplace.find(stringSearchString, pos + intLengthReplacment);
        }

        return stringStringToReplace;
}

Quelle Online-Tutorials.net


der aufruf:
Code:
std::string pFile = ReplaceString("\\","\\\\",Path);

die ausgabe sieht in etwa so aus:
"D:Dokumente und EinstellungenUserDesktopProgramm.exe"


weiss einer wie ich das richtig machen kann
danke im voraus
lg
 
Hi.
der aufruf:
Code:
std::string pFile = ReplaceString("\\","\\\\",Path);

die ausgabe sieht in etwa so aus:
"D:Dokumente und EinstellungenUserDesktopProgramm.exe"
Das kann ich nicht nachvollziehen. Was steht denn in Path drin?

Wenn ich es so aufrufe:
C++:
cout << ReplaceString("\\", "\\\\", "C:\\Dokumente und Einstellungen\\deep\\Eigene Dateien") << endl;
erhalte ich folgende Ausgabe:
Code:
C:\\Dokumente und Einstellungen\\deep\\Eigene Dateien
Gruß

PS: Wie kommst du eigentlich darauf, dass du die Backslashes verdoppeln mußt?
 
Zurück