这个功能有什么原因吗? isalnum() 是不是满足你的需求?别忘了 #include <ctype.h> 。
isalnum()
#include <ctype.h>
多项式与x轴相交6次,即它具有6个实根,因此6次多项式就足够了。
f(c) = -(c-48)*(c-57)*(c-65)*(c-90)*(c-97)*(c-122)
这当然会 浪费 时间,做5次乘法比5次逻辑运算慢得多。此外, && 和 || 是短路的,所以经常你不需要做所有这些。
&&
||
在您的特定情况下,最佳形式是:
unsigned u = c; if (u-48<10 || (u|32)-97<26)
虽然这并没有解决你所期待的问题,但是相同的概念(即(1)将一个范围的两个比较转换为一个无符号的减法和比较,以及(2)使用按位 - 或组合多个范围检查,其中长度是相同的,并且对齐匹配像这样)通常可以推广到其他情况。