【发布时间】:2012-09-23 10:05:35
【问题描述】:
我想从 C++ 中的字符串中删除前 10 个字符。我该怎么做?
【问题讨论】:
我想从 C++ 中的字符串中删除前 10 个字符。我该怎么做?
【问题讨论】:
我怀疑这里有更多代码你没有显示,问题很可能在那里。
这段代码运行良好:
#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;
}
话虽如此,正如其他人所提到的,有更短的方法可以做到这一点。
【讨论】:
使用std::string::substr:
try {
str = str.substr(10);
} catch (std::out_of_range&) {
//oops str is too short!!!
}
【讨论】:
像这样:
str.erase(0,10);
...
【讨论】: