从字符串中删除N个第一个字符

时间:2012-10-02 14:25:50

标签: c++ string character

我想从C ++中的字符串中删除前10个字符。我怎么能这样做?

3 个答案:

答案 0 :(得分:35)

像这样:

str.erase(0,10);

...

答案 1 :(得分:7)

使用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/

答案 2 :(得分: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;
}

话虽如此,正如其他人所提到的那样,有更短的方法可以做到这一点。