C++从字符串中删除标点符号

标签 c++ string parsing erase punctuation

我有一个字符串,我想从中删除所有标点符号。我怎么做?我做了一些研究,发现人们使用 ispunct() 函数(我试过了),但我似乎无法让它在我的代码中工作。有人有什么想法吗?

#include <string>

int main() {

string text = "this. is my string. it's here."

if (ispunct(text))
text.erase();

return 0;
}

最佳答案

使用算法remove_copy_if :-

string text,result;
std::remove_copy_if(text.begin(), text.end(),            
                        std::back_inserter(result), //Store output           
                        std::ptr_fun<int, int>(&std::ispunct)  
                       );

关于C++从字符串中删除标点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19138983/

相关文章:

c++ - 为什么 setwidth 为其他值 1 会使我的线消失?

c++ - gtest 如何比较两个数组中的值?

c++ - 初始化全局变量的问题

java - 关于 Java 命令行参数

java - 从 SQL/HQL Java 解析表名和列名

c++ - 使用 STL 容器的部分 C++ 模板特化

javascript - D3.js - 在图表中添加和自定义文本

c# - 字符串相似度算法

java - 通过 Scanner 保证整数输入的更简单方法?

android - java.lang.NullPointerException:尝试调用虚拟方法解析