/*
Name: isalpha
Copyright:
Author:
Date: 26-05-09 10:39
Description:判断ch是否为英文字母
*/
int isalpha(int ch)
{
return (unsigned int)((ch | 0x20) - 'a') < 26u;
}
在ASCII码中A-Z的编码为
二进制 十进制
A 01000001 65
B 01000010 66
.
.
Y 01011001 89
Z 01011010 90
所以A-Z的编码高位的第2、3位始终为10,然后通过后面5位来表示26个字母。
在ASCII码中a-z的编码为
二进制 十进制
a 01100001 97
b 01100010 98
.
.
y 01111001 121
z 01111010 122
所以a-z的编码高位的第2、3位始终为11,然后通过后面5位来表示26个字母。
ch | 0x20 表示将A-Z转换为a-z