2016-12-11 22 views
0

token.erase(std::remove_if(token.begin(), token.end(), ispunct), token.end()); ispunctを使用すると、すべての句読点が削除されるようです。特定のタイプのみを削除することは可能ですか?たとえば、コロン以外のすべての句読点を削除したい場合などです。それともあなた自身の状態を書く必要がありますか?C++で特定の記号/句読点を削除する

答えて

0

使用あなたのtoken.erase(...)コールの述語としてlambda(または呼び出し可能オブジェクト)

token.erase(
    std::remove_if(
     token.begin(), 
     token.end(), 
     [](char x){ return ispunct(x) && x != ':'; }), 
    token.end()); 
+0

は、これは非常に効率的な方法で問題を解決し、ありがとうございます! – user3221454

関連する問題