How can I remove last character from a C++ string?
I tried st = substr(st.length()-1);
But it didn\'t work.
Simple solution if you are using C++11. Probably O(1) time as well:
st.pop_back();
If the length is non zero, you can also
str[str.length() - 1] = '\0';
With C++11, you don't even need the length/size. As long as the string is not empty, you can do the following:
if (!st.empty())
st.erase(std::prev(st.end())); // Erase element referred to by iterator one
// before the end
int main () {
string str1="123";
string str2 = str1.substr (0,str1.length()-1);
cout<<str2; // output: 12
return 0;
}
buf.erase(buf.size() - 1);
This assumes you know that the string is not empty. If so, you'll get an out_of_range
exception.
That's all you need:
#include <string> //string::pop_back & string::empty
if (!st.empty())
st.pop_back();