web-dev-qa-db-ja.com

最初と最後の文字C ++を削除する

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文字が含まれていることを最初に検証するよう注意してください...

47
Cameron

私のBASICインタープリターは、引用符で始まり、引用符で終わる

_str->pop_back();
str->erase(str->begin());
_

もちろん、私はalways整形式のBASICスタイルの文字列を期待しているので、失敗したassertで失敗します:

assert(str->front() == '"' && str->back() == '"');

ちょうど私の2セント。

2
Hernán
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 ;
    } 
}
0
Issam mhedhebi