从字符串中删除N个第一个字符
答
像这样:
str.erase(0,10);
...
答
使用std::string::substr
:
try {
str = str.substr(10);
} catch (std::out_of_range&) {
//oops str is too short!!!
}
答
我怀疑有在这里更多的代码是你没有展示的,问题可能在那里。
此代码工作得很好:
#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;
}
随着中说,有更短的方法可以做到这一点,因为其他人提及。
呃是的,这是有效的。我试过str.erase(str.begin(),str.end()+ 10); 这让我在 PTS
str.begin(),str.begin()+ 10 – Arkadiy
对于大型字符串,比str = str.substr(10)快8:11。 –