【发布时间】:2011-10-05 08:07:23
【问题描述】:
我有一个 C 代码,其中我在 ctype.h 中使用标准库函数 isalpha(),这是在 Visual Studio 2010-Windows 上。 在下面的代码中,如果 char c 是 '£',isalpha 调用会返回一个断言,如下面的快照所示:
char c='£';
if(isalpha(c))
{
printf ("character %c is alphabetic\n",c);
}
else
{
printf ("character %c is NOT alphabetic\n",c);
}
我可以看到这可能是因为 8 位 ASCII 没有这个字符。
那么我该如何处理 ASCII 表之外的非 ASCII 字符呢?
我想要做的是如果找到任何非字母字符(即使它包含不在 8 位 ASCII 表中的此类字符)我希望能够忽略它。
【问题讨论】:
-
请注意,
'£'不是 ASCII 字符。您正在混合上下文:结果可能令人惊讶。