Std :: stringから最初と最後の文字を削除する方法、私はすでに次のコードを実行しています。
しかし、このコードは最後の文字のみを削除します
m_VirtualHostName = m_VirtualHostName.erase(m_VirtualHostName.size() - 1)
最初の文字も削除する方法は?
さて、 erase()
最初の文字もできます(erase()
は文字列を変更することに注意してください):
m_VirtualHostName.erase(0, 1);
m_VirtualHostName.erase(m_VirtualHostName.size() - 1);
ただし、この場合、より簡単な方法はサブストリングを取得することです。
m_VirtualHostName = m_VirtualHostName.substr(1, m_VirtualHostName.size() - 2);
文字列に実際に少なくとも2文字が含まれていることを最初に検証するよう注意してください...
私のBASICインタープリターは、引用符で始まり、引用符で終わる
_str->pop_back();
str->erase(str->begin());
_
もちろん、私はalways整形式のBASICスタイルの文字列を期待しているので、失敗したassert
で失敗します:
assert(str->front() == '"' && str->back() == '"');
ちょうど私の2セント。
std::string trimmed(std::string str ) {
if(str.length() == 0 ) { return "" ; }
else if ( str == std::string(" ") ) { return "" ; }
else {
while(str.at(0) == ' ') { str.erase(0, 1);}
while(str.at(str.length()-1) == ' ') { str.pop_back() ; }
return str ;
}
}