繁体   English   中英

是<thing> char32_t 的等价物</thing>

[英]is<thing> equivalents for char32_t

<ctype>中为char32_t定义的 char 函数(ispace、isalpha 等)是否有任何等价物?

我环顾四周,只能看到 iswspace(及相关),它们看起来像是用于 16 位字符的。

注意:虽然 isspace 将 int 作为参数,但它似乎会为 Unicode 个字符产生错误结果。

例子:

char32_t dagger = U'🗡';
if (isspace(dagger)) {
    puts("That is a space!");
}

请问 output “那是一个空格!”

wchar_t ,您可以将std::isalpha与在<locale>中定义的合适的语言环境一起使用。

对于高于 0xFFFF 的任何内容,您将需要 ICU 库:

u_isalphau_isUAlphabetic

u_isspaceu_isUWhiteSpace

完整的函数列表: uchar.h

虽然 C++-the-language 具有生成 Unicode 值的功能,但 C++-the-library 几乎完全听不到 Unicode。 <ctype.h><cctype>不知道如何处理 Unicode 值; 它们的功能基于C 语言环境机制 您的实现可能提供知道 Unicode 是什么的语言环境,但默认的"C"语言环境不是其中之一。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM