在没读<ctype.h>的源码之前,我一直以为我们平时用的isalnum、isdigit、isalpha等这些函数,是靠判断写出来的。
比如:
int isdigit(int c){
return ( ((char)c >= '0' && (char)c <='9') ? 1 : 0 );
}
在没有阅读源码之前,可能大多数人都会这么做,其实这样做是正确的。但是我在看了源码之后,才发现标准库并不是这样来实现这些函数的。是靠转换表来高效的实现的。
这是<ctype.h>的字符类别(第一次用Xmind6这玩意...)
内容:
isalnum(in