2012-10-02 4 views
18

से पहले अक्षर को हटाकर मैं C++ में स्ट्रिंग से पहले 10 वर्णों को हटाना चाहता हूं। यह कैसे करना है?स्ट्रिंग

उत्तर

24
इस तरह

:

str.erase(0,10); 

...

+0

उह हां यह काम करता है। मैंने str.erase (str.begin(), str.end() + 10) की कोशिश की; जिसने मुझे पहले भी एक दुर्घटना दी <<<धन्यवाद! – PTS

+3

str.begin(), str.begin() + 10 – Arkadiy

+0

बड़े तारों पर str = str.substr (10) 8:11 के रूप में तेज़। –

4

उपयोग std::string::substr:

try { 
    str = str.substr(10); 
} catch (std::out_of_range&) { 
    //oops str is too short!!! 
} 
  1. http://www.cplusplus.com/reference/string/string/substr/
+0

धन्यवाद यह एक दुर्घटना के बिना भी काम करता है, दूसरा दूसरा छोटा है। – PTS

+1

@Paul लिखते समय यह वास्तव में छोटा है - लेकिन मुझे यह कहना होगा कि str.erase (size_t, size_t) आपके मामले में बेहतर प्रदर्शन करता है। – PiotrNycz

+0

जानना अच्छा है, मेरा पूरा आवेदन काफी समय गहन है। – PTS

1

मुझे लगता है कि संदेह है वहाँ यहां अधिक कोड है जो आप नहीं दिखा रहे हैं, और समस्या वहां मौजूद है।

इस कोड को बस ठीक काम करता है:

#include <string> 
#include <iostream> 

using namespace std; 

int main(int argc, char **argv) 
{ 
    string imgURL = "<img src=\"http://imgs.xkcd.com/comics/sky.png"; 

    string str = imgURL; 
    int urlLength = imgURL.length(); 
    urlLength = urlLength-10; 
    str.erase (str.begin(), str.end()-urlLength); 
    imgURL = str; 

    cout << imgURL << endl; 

    return 0; 
} 
ने कहा, के रूप में दूसरों का उल्लेख किया है ऐसा करने के लिए, छोटे तरीके हैं कि साथ

संबंधित मुद्दे