Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试<ctype.h>使用查找表和位掩码(此方法)构建一个实现。但是我在 C11 标准中看到我需要一些关于当前语言环境的信息:
<ctype.h>
7.4 字符处理<ctype.h> [...] 2 这些函数的行为受当前语言环境的影响。
7.4 字符处理<ctype.h>
[...]
2 这些函数的行为受当前语言环境的影响。
那么,我需要一个<locale.h>实现吗?如何<ctype.h>使用 C 标准库管理我的实现?
<locale.h>
对 8 位字符执行此操作的一种快速简单的方法是为每个定义的 LC_CTYPE 值设置一个位掩码。对于宽字符类型,您可以通过某种方法(例如 2 阶段查找)来减小表的大小。为了提高效率,这需要针对每个字符编码进行设计。对 LC_CTYPE 进行动态查找将允许更轻松地添加新的语言环境。
在我看来,您可以使用 16 个左右的 1 字节表来涵盖西方语言。做所有事情需要大约 50 张桌子,其中一些非常乏味。