C 删除某些符号/标点符号

C++ removing certain symbol/punctuation

本文关键字:标点符号 符号 删除      更新时间:2023-10-16

token.erase(std::remove_if(token.begin(), token.end(), ispunct), token.end()); 似乎使用ispunct将删除所有标点符号。是否只能删除某些类型?例如,如果我想删除所有标点符号,例如结肠?还是在这种情况下必须写自己的状况?

使用lambda (或可呼叫对象)作为token.erase(...)调用的谓词:

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