公告
财富商城
积分规则
提问
发文
2019-03-07 15:51发布
三岁会撩人
How can I remove last character from a C++ string?
I tried st = substr(st.length()-1); But it didn't work.
st = substr(st.length()-1);
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.
out_of_range
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
Faced same situation and found such solution:
CString str; // working with this variable if (!str.IsEmpty()) // or if(str.GetLength() > 0) str.Delete(str.GetLength()-1);
Maybe it will be useful for someone.
If the length is non zero, you can also
str[str.length() - 1] = '\0';
Simple solution if you are using C++11. Probably O(1) time as well:
st.pop_back();
That's all you need:
#include <string> //string::pop_back & string::empty if (!st.empty()) st.pop_back();
最多设置5个标签!
This assumes you know that the string is not empty. If so, you'll get an
out_of_range
exception.With C++11, you don't even need the length/size. As long as the string is not empty, you can do the following:
Faced same situation and found such solution:
Maybe it will be useful for someone.
If the length is non zero, you can also
Simple solution if you are using C++11. Probably O(1) time as well:
That's all you need: