N bilinen değilse
path.erase(N, std::string::npos);
kullanabilir ve bunu bulmak istediğiniz, arama fonksiyonları herhangi birini kullanabilirsiniz. Bu durumda size 'son çizgi bulmak isteyeceksiniz, bu yüzden rfind
veya find_last_of
kullanabilirsiniz:
path.erase(path.rfind('/'), std::string::npos);
path.erase(path.find_last_of('/'), std::string::npos);
Yineleyicilerin dayanarak bu bile varyasyon vardır: eğer
path.erase (path.begin() + path.rfind('/'), path.end());
, dedi ki Bir yaşam için yolları manipüle edecekler, bu görev için tasarlanmış bir kütüphaneyi kullanmak daha iyidir, örneğin Boost Filesystem.
Tam olarak ne istedim! Bunu yapmanın _beautiful_ yolu olması gerektiğini biliyordum :) Teşekkürler. – tonytony
Ya da çok güzel yollar :) – chris
Std :: npos yerine std :: string :: npos cevabını düzenledim. npos, std :: string not std öğesinin bir üyesidir –