标签: c++ string
我想从字符串中删除最后n个字符。我知道有一个名为pop_back()的方法可以删除最后一个字符。我可以在如下所示的循环中使用它,但它不会感觉有效。
pop_back()
string st("hello world"); for (i=0; i<n; i++) { st.pop_back(); }
想知道是否有更有效的替代品。感谢。
答案 0 :(得分:5)
std::string::erase正是您要找的。 p>
std::string::erase
如果你想删除最后n个字符,你可以这样做:
n
st.erase(st.length()-n);
但请确保进行适当的边界检查。
答案 1 :(得分:0)
string::substr是一种更好的方法。你可以这样做:
st = st.substr(0, st.length()-n);