如何实现<ctype.h>?</ctype.h>

时间:2012-08-05 12:42:02

标签: c locale ctype

我正在尝试使用查找表和位掩码(this method)构建<ctype.h>的实现。但是我已经在C11标准中看到了我需要关于当前语言环境的一些信息:

  

7.4字符处理<ctype.h>

     

[...]

     

2这些函数的行为受当前语言环境的影响。

那么,我需要<locale.h>实施吗?如何使用C标准库管理我的<ctype.h>实现?

1 个答案:

答案 0 :(得分:1)

对8位字符执行此操作的一种快速简单方法是为每个定义的LC_CTYPE值设置一个位掩码。对于宽字符类型,您可以通过某种方法(如2阶段查找)来减小表的大小。为了提高效率,需要针对每个字符编码进行设计。在LC_CTYPE上进行动态查找可以更轻松地添加新的语言环境。

在我看来,你可以用16个左右的1字节表覆盖西方语言。做一切都需要大约50张桌子,其中一些非常繁琐。