如何删除字符串周围的标点符号

0 c++

我想删除字符串周围的标点符号,以便字符串:

 !dont't?.
Run Code Online (Sandbox Code Playgroud)

将成为:

 don't
Run Code Online (Sandbox Code Playgroud)

我似乎只能删除字符串中的所有标点符号:

int len = str.size();
for (int i = 0; i < len; i++){
    if (ispunct(str[i])){
        str.erase(i--, 1);
        len = str.size();
    }
}
Run Code Online (Sandbox Code Playgroud)

你们知道一个简单的方法来摆脱前面和后面的所有标点符号吗?

chr*_*ris 7

是的,你可以使用boost::trim_if(见工作):

boost::trim_if(str, boost::is_punct());
Run Code Online (Sandbox Code Playgroud)