isdigit 函数的问题

来源:互联网 发布:linux 怎么解压rar 编辑:程序博客网 时间:2024/04/30 00:32

isdigit 判断字符是否为0-9的数字


这个函数的原型应该是int  isdigit( int _C);

实际实现中,release版的isdigit通过查一个256长度的bool表来判断,所以debug版的isdigit中_ASSERTE((unsigned)(c + 1) <= 256);这句话用来检测出现特殊问题的情况


所以如果用isdigit判断字符串全部都是数字,当使用WCHAR情况下回产生c>256的情况,导致崩溃事情


所以在使用WCHAR时不要使用isdigit 而使用宏:


#define _Isdigit(x) ('0' <= (x) && (x) <= '9')


这个宏兼容char 和 wchar

0 0
原创粉丝点击