C++ 删除某些 symbol/punctuation
C++ removing certain symbol/punctuation
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());
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());