如何从c++字符串中删除最后一个字符?

我尝试了st = substr(st.length()-1);但这并没有起作用。


当前回答

如果长度非零,也可以

str[str.length() - 1] = '\0';

其他回答

str.erase( str.end()-1 )

参考:std::string::erase(

不需要c++11或c++0x。

对于非突变版本:

st = myString.substr(0, myString.size()-1);

这就是你所需要的:

#include <string>  //string::pop_back & string::empty

if (!st.empty())
    st.pop_back();

如果长度非零,也可以

str[str.length() - 1] = '\0';
int main () {

  string str1="123";
  string str2 = str1.substr (0,str1.length()-1);

  cout<<str2; // output: 12

  return 0;
}