【发布时间】:2011-05-02 08:26:46
【问题描述】:
我有一个 isAlpha 的查找表。
for (int i = 0; i <= UCHAR_MAX; ++i)
p.isalphaLUT[i] = isalpha(i);
其中 isalphaLUT 是一个字符数组...问题是 isalphaLUT[i] 其中 i 是 ASCII 范围之外的字符(当我尝试获取等效的 ASCII 值时,它会打印 4294967168)。我尝试将 127 以上的所有 ASCII 范围设置为 0,但这不起作用。有问题的字符是这个ö。
【问题讨论】:
-
ASCII 范围是 [0, 127],而不是 [0, 255]。
-
我关心 ASCII [0,255]。目前 ö 应该在 0 到 255 的 ASCII 范围内。但是当我尝试打印等效值时,我得到了一些无意义的数字,并且当 i 是 ö 的 isalphaLUT[i] 应该返回 false 时返回 true 跨度>
-
ASCII 是 0..127,不是 0..255,jamesdlin 是对的。