C++ wchar_t[] 怎样判读其中的某个字符是不是0-9,a-b,A-b及英文标点符号?

C++ wchar_t[] 怎样判读其中的某个字符是不是0-9,a-b,A-b及英文标点符号?

这些在ascII码的连续区间内判断

根据ascii码判断,每个字符都对应着ascii码

if (ch >=L '0' && ch <=L '9') 数字
else if (ch >= L'A' && ch <=L 'Z') 大写数字
else if (ch >= L'a' && ch <=L 'z') 小写数字
else if (ch <= 255) 符号
else 中文字符

主要是判断宽字符的ASCII码,一个字符占2个字节,这点和窄字符不一样!

wchar_t本身就是2byte,这个很容易理解自己想。
宽字符以2byte空间储存,就是char两倍空间。
为什么?Unicode中文字符,是全角符号,像ASCII和ASNI美国标准字符,是半角符号。
两个半角char组合一个全角wchar_t。
如果wchar_t另一半用不着就填上空字符。

 if (ch >= '0' && ch <= '9') 数字
else if (ch >= 'A' && ch <= 'Z') 大写数字
else if (ch >= 'a' && ch <= 'z') 小写数字
else if (ch <= 255) 符号
else 中文字符