从字符串末尾删除几个字符的更有效的方法
more efficient way of remove a few characters from the end of a string
我想从字符串中删除最后n个字符。我知道有一种叫做pop_back()
的方法可以去掉最后一个字符。我可以像下面这样在循环中使用它,但感觉效率不高。
string st("hello world");
for (i=0; i<n; i++) {
st.pop_back();
}
想知道是否有更有效的替代方法。谢谢。
std::string::erase
就是你要找的。
如果你想擦除最后一个n
字符,你可以这样做:
st.erase(st.length()-n);
但是一定要做正确的边界检查
string::substr将是更好的方法。你可以这样做:
st = st.substr(0, st.length()-n);
相关文章:
- 为我的 c++ 类介绍制作一个三角形分类器.我有几个问题
- 使用 make 编译 MPI,几个命名空间错误,例如"错误:未知类型名称'使用'?
- 如何返回或护理项目清单基于几个类别
- 我们如何在文本文件中找到C++中的几个单词?
- 关于 std::bitset 构造函数的几个问题?
- 几个 Nt 函数在 Windows 7 x32 上返回STATUS_WAIT_0
- std::stoi 只转换前几个字符
- CIN 会丢失每行的前几个字符
- 字符串的串联正在替换前几个字符
- "std::isdigit"正在崩溃几个扩展的 ASCII 字符
- 从 asio::async_write 接收到几个字符
- 如何从标准::字符串中获取几个字符
- 给定一个字符串,如何检查前几个字符 == 另一个字符串?C++
- 如何截断前几个字符字符数组 C++
- 只选择字符串C++中的前几个字符
- 如何在c++中将几个bacis字符组合成一个字符串
- 我的字符数组只显示最后几个字符.c++
- 在c++中,如何从字符串中获取后面的几个字符?
- 从字符串末尾删除几个字符的更有效的方法
- 将几个不同的字符连接成一个字符串