gpt4 book ai didi

c++ - 从字符串中删除所有非字母字符

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:33:14 25 4
gpt4 key购买 nike

有没有办法从 std::string 中删除所有非字母字符(即 ,.?! 等),同时不删除像 这样的捷克符号>ščéř?我尝试使用:

std::string FileHandler::removePunctuation(std::string word) {
for (std::string::iterator i = word.begin(); i != word.end(); i++) {
if (!isalpha(word.at(i - word.begin()))) {
word.erase(i);
i--;
}
}
return word;
}

但它会删除捷克字符。

在最好的情况下,我也想对这些符号使用 toLowerCase

最佳答案

您可以将 std::remove_iferase 一起使用:

#include <cctype>
#include <algorithm>
#include <string>
//...
std::wstring FileHandler::removePunctuation(std::wstring word)
{
word.erase(std::remove_if(word.begin(), word.end(),
[](char ch){ return !::iswalnum(ch); }), word.end());
return word;
}

关于c++ - 从字符串中删除所有非字母字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41263583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com