iswctype()函数是否有窄字符版本
Is there narrow characters version of iswctype() function?
有没有像iswctype()
那样的窄字符函数?
更新
我没有意识到有std::regex_traits::isctype()
,否则我会让这个问题更好地解释情况:
我实际上是在实现std::ctype<char>
方面本身,所以我不能使用std::regex_traits::isctype()
,因为它本身依赖于std::ctype<char>::is()
。
请建议使用POSIX或C99函数。
POSIX表示,对于扩展字符类,
charclass名称可以用作
wctype()
函数的属性参数、正则表达式和shell模式匹配括号表达式中的属性参数,也可以由tr
命令使用。
和POSIX regex页面,相应地,说
此外,字符类表达式的形式为:
[:name:]
在那些name关键字在
LC_CTYPE
类别中被赋予charclass定义的区域设置中被识别。
因此,要在窄字符区域设置中实现扩展分类,唯一符合POSIX的方法似乎是POSIX regex类,就像在C++中实现它的唯一方法是已经提到的std::regex_traits::isctype
一样。
也许您最好接触特定于平台的API,根据这些功能的实现(在可访问的地方)。
PS:也许更实用的方法是只调用btowc
和iswctype
。至少可以说,对窄字符及其加宽形式进行不同分类的区域设置是值得怀疑的。
标准正则表达式库提供了一个名为std::regex_traits::isctype
的方法。请注意,它使用了std::regex_traits
,这是一个C++11构造。
它们是在C中的头<ctype.h>
或C++中的<cctype>
中声明的函数,包括isdigit、isalpha等
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 为什么 Serial.println(<char[]>);返回随机字符?
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何在C++中从字符串中分割字符
- 为什么msgrcv()将垃圾字符馈送到缓冲区
- 导入库可以跨dll版本工作吗
- 指向指向字符数组的指针数组的指针
- 如何用转义符替换字符串中的所有特殊字符
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 比较字符数组
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 如何在C 中输出两个字符串版本,一个具有逃生字符,另一个则不是
- iswctype()函数是否有窄字符版本
- 查找字符串的所有可能版本,其字符可能具有多个变体
- 获取最后一个错误的宽字符版本
- 将字符串中的字符替换为其修改后的版本