如何从c++字符串中删除最后一个字符?
我尝试了st = substr(st.length()-1);但这并没有起作用。
如何从c++字符串中删除最后一个字符?
我尝试了st = substr(st.length()-1);但这并没有起作用。
当前回答
str.erase( str.end()-1 )
参考:std::string::erase(
不需要c++11或c++0x。
其他回答
str.erase( str.end()-1 )
参考:std::string::erase(
不需要c++11或c++0x。
简单的解决方案,如果你使用c++ 11。也可能是O(1)次:
st.pop_back();
在c++ 11中,你甚至不需要长度/大小。只要字符串不为空,就可以执行以下操作:
if (!st.empty())
st.erase(std::prev(st.end())); // Erase element referred to by iterator one
// before the end
str.erase(str.begin() + str.size() - 1)
Str.erase (str.rbegin())不能编译,因为reverse_iterator不能转换为normal_iterator。
在这种情况下,c++ 11是你的朋友。
如果长度非零,也可以
str[str.length() - 1] = '\0';