C ++ 문자열에서 마지막 문자를 제거하려면 어떻게해야합니까?
시도했지만 st = substr(st.length()-1);
작동하지 않았습니다.
답변
변경되지 않는 버전의 경우 :
st = myString.substr(0, myString.size()-1);
답변
C ++ 11을 사용하는 경우 간단한 솔루션. 아마 O (1) 시간 :
st.pop_back();
답변
if (str.size () > 0) str.resize (str.size () - 1);
std :: erase 대안은 좋지만 “-1″(크기 또는 종료 반복자를 기반으로 함)을 좋아합니다. 의도를 표현하는 데 도움이됩니다.
BTW-실제로 std :: string :: pop_back이 없습니까? -이상해 보인다.
답변
buf.erase(buf.size() - 1);
이것은 문자열이 비어 있지 않다는 것을 알고 있다고 가정합니다. 그렇다면 out_of_range
예외 가 발생합니다.
답변
답변
그게 당신이 필요한 전부입니다 :
#include <string> //string::pop_back & string::empty
if (!st.empty())
st.pop_back();
답변
int main () {
string str1="123";
string str2 = str1.substr (0,str1.length()-1);
cout<<str2; // output: 12
return 0;
}