我正在尝试使用查找表和位掩码(this method)构建<ctype.h>
的实现。但是我已经在C11标准中看到了我需要关于当前语言环境的一些信息:
7.4字符处理
<ctype.h>
[...]
2这些函数的行为受当前语言环境的影响。
那么,我需要<locale.h>
实施吗?如何使用C标准库管理我的<ctype.h>
实现?
答案 0 :(得分:1)
对8位字符执行此操作的一种快速简单方法是为每个定义的LC_CTYPE值设置一个位掩码。对于宽字符类型,您可以通过某种方法(如2阶段查找)来减小表的大小。为了提高效率,需要针对每个字符编码进行设计。在LC_CTYPE上进行动态查找可以更轻松地添加新的语言环境。
在我看来,你可以用16个左右的1字节表覆盖西方语言。做一切都需要大约50张桌子,其中一些非常繁琐。