Extract path
-
Hallo,
ich habe einen Dateipfad als std::string und möchte jetzt nur den Pfad zum Ordner haben. Also habe mir dazu folgende Funktion geschrieben.string Dir(string in) { string path; for(int i = in.size();; i--) { if(in[i] == '\\') { for(int j = 0; j <= i+1; j++) { path[j] = in[j]; } break; } } return path; }Beim 2. Durchlauf der 2. for-Schleife bekomme ich einen Fehler

(in[j] ist dann grade ':').Expression: string subscript out of range
Kann mir Jemand sagen was ich falsch gemacht habe?
chrises :xmas1:
-
Du fängst schon im ersten Durchlauf falsch an. Du musst i auf size()-1 setzen (du fängst ja bei 0 an zu zählen, geht ein String der Größe 10 bis zum Index 9).
Du könntest es auch einfacher machen:
string path=in.substr(0,in.find_last_of('\\'));
-
ohh ist mir granicht aufgefallen. Danke!

-
Was funktioniert nicht?
Deine Schleife könnte z.B. so aussehen:
for(int j = 0; j <= i; j++) { path.append(1,in[j]); } break;So würde es zumindest klappen. Aber das wäre wie von hinten durch die Brust...
