gpt4 book ai didi

c++ - 如何在 Unicode 字符串中查找不能属于单词的字符?

转载 作者:搜寻专家 更新时间:2023-10-31 00:45:37 26 4
gpt4 key购买 nike

我在字符串中有一些文本,我需要检查该特定字符串是否包含任何不允许组成单词的字符。

假设我有像“(hello}”这样的文本

这里它包含符号 '(' 和 '}'。我怎么能在 C++ 中做到这一点。一个字符串可能包含任何 unicode 字符。

最佳答案

如果字符串真的包含Unicode(UTF-8),问题就确定了不平凡的;你可能想使用一些外部库,比如加护病房。或者您可以转换为 wchar_t (wstring),并使用单个字节编码方案如下:

如果字符是单字节编码的,std::find_if合适的谓词应该可以解决问题。如果你正在做任何文字解析,你会想要定义为一组这样的谓词,一次又一次全部;谓词可以使用 std::ctype facet 中的函数locale,或 wctype.h 中的那些(使用全局语言环境)。

不过,如果您正在处理 Unicode,甚至转换为宽字符可能不够,因为完整的 Unicode 仍然可以使用超过一个代码点代表一个字符。真正的问题是你想做这件事有多认真。 (另请注意,在许多语言中,像英语或法语一样,“单词”可以包含 Unicode 字符考虑标点符号,例如“不要”或“aujourd'hui”——Unicode表格会告诉你 '\'' 是标点符号,不是单词的一部分。)

关于c++ - 如何在 Unicode 字符串中查找不能属于单词的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6455715/

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