<ctype>中为char32_t定义的char函数(ispace,isalpha等)是否有任何等效项?

我环顾四周,只能看到iswspace(&相关),看起来像是16位字符。

注意:虽然isspace接受一个int作为参数,但它似乎为Unicode字符产生了错误的结果。

例:

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

将输出“那是一个空格!”

最佳答案

直到wchar_t,您都可以将std::isalpha<locale>中定义的适当语言环境一起使用。

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

u_isalphau_isUAlphabetic

u_isspaceu_isUWhiteSpace

功能完整列表:uchar.h

关于c++ - 是char32_t的等价物,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60353945/

10-11 21:23