有没有一种方法可以从 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
。
locale
。 - StoryTeller - Unslander Monicastd::ispunct
函数。 - molbdnilostd::string
?C++ 本身不支持 utf8,因此使用包含 utf8 数据的std::string
不会按预期工作,因为字符串的每个元素都不对应于一个真实字符。如果正确提供区域设置,isalpha
可以与std::wstring
或std::u16string
一起使用。 - Jack