从字符串中删除 N 个前字符

Deleting N first chars from string

本文关键字:字符 删除 字符串      更新时间:2023-10-16

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

像这样:

str.erase(0,10);

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

我怀疑这里有更多您没有显示的代码,问题可能在那里。

这段代码工作得很好:

#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;
}

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