c++实现身份证是否合法判断函数

来源:互联网 发布:淘宝买家v4是什么级别 编辑:程序博客网 时间:2024/04/29 07:07

虽然c++11新增了正则表达式模块,但是c++11以前的代码并不支持正则表达式,因此该函数可用来判断身份证是否合法。

合法身份证的两个特征:1、身份证位数一定为18  

    2、最后一位一定为数字或字母

bool IsValidCardID(const char* pInput){bool bSatisfy = false;if (!pInput)return bSatisfy;if (strlen(pInput) != 18)return false;// 判断身份证是否符合 1:18位 2:前17位一定位数字 最后一位为字母或数字char* pBegin = (char*)pInput;while (*pBegin){if (pBegin - pInput == 17) // 最后一位{if ((*pBegin >= '0' && *pBegin <= '9') || (*pBegin >= 'a' && *pBegin <= 'z') || (*pBegin >= 'A' && *pBegin <= 'Z'))bSatisfy = true;}else{if (!(*pBegin >= '0' && *pBegin <= '9'))break;}pBegin++;}return bSatisfy;}