c++去除中英文标点

查了很多资料,试过很多方法,都不能用,我不想用头文件local那种方法,最后发现下面这么写最简单。注意65292、12290、44分别表示这三种标点:,。,还需要过滤哪些标点自己去输出对应的数字就可以,道理是一样的。

#include <codecvt>
std::string eval_result_tmp = "待去除标点,字符串。";
std::wstring_convert<std::codecvt_utf8<wchar_t>> conv;
std::wstring ws = conv.from_bytes(eval_result_tmp);
std::wstring nws;
//过滤每一行中的标点
for (wchar_t ch : ws){
   //检查是否是标点
   if (ch != 65292 && ch != 12290 && ch != 44)
       nws.push_back(ch);
}
//将过滤后的文本重新转换成UTF-8编码的多字节类型
std::string eval_result = conv.to_bytes(nws);
std::cout << "*" << eval_result << std::endl;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值