एन में जाना जाता है, तो आप उपयोग कर सकते हैं
path.erase(N, std::string::npos);
एन ज्ञात नहीं है और आप इसे खोजने के लिए चाहते हैं, आप खोज कार्यों के किसी भी उपयोग कर सकते हैं। इस मामले में आप 'अंतिम स्लेश लगाना चाहते हैं जाएगा, ताकि आप rfind
या find_last_of
उपयोग कर सकते हैं:
path.erase(path.rfind('/'), std::string::npos);
path.erase(path.find_last_of('/'), std::string::npos);
iterators के आधार पर इस बात का भी विभिन्नता है:
path.erase (path.begin() + path.rfind('/'), path.end());
कहा कि, अगर आप जीवित रहने के लिए पथों में हेरफेर करने जा रहे हैं, इस कार्य के लिए डिज़ाइन की गई लाइब्रेरी का उपयोग करना बेहतर है, जैसे कि Boost Filesystem।
बिल्कुल वही जो मैं चाहता था! मुझे पता था कि ऐसा करने का _beautiful_ तरीका होना चाहिए :) धन्यवाद। – tonytony
या बहुत खूबसूरत तरीके :) – chris
मैंने std :: npos के स्थान पर उत्तर, std :: string :: npos संपादित किया। npos std :: स्ट्रिंग का सदस्य नहीं है std –