【发布时间】:2016-08-12 05:40:14
【问题描述】:
我一直在创建一个程序来检查电话号码是否有效,如果电话号码以“04”开头但长度为十个字母,我的程序将返回 true。这是检查字符串是否为无符号整数的函数的代码:
bool Is_Int(string phone) {
if (all_of(phone.begin(), phone.end(), ::isdigit)) {
return true;
} else {
return false;
}
}
这是检查电话号码是否有效的代码:
bool Is_Valid(string phone) {
if (phone.length() == 10 && phone.substr(0,2) == "04" || phone.substr(0,2) == "08" && Is_Int(phone)) {
return true;
} else {
return false;
}
}
这是主程序代码:
int main()
{
cout << "Enter Phone Number: ";
string PhoneNumber;
getline(cin, PhoneNumber);
if (Is_Valid(PhoneNumber)) {
cout << "authenticated" << endl;
}
return 0;
}
错误是,如果我输入“04abcdefgh”,它将打印authenticated
【问题讨论】:
-
没有错误,它只是在我输入十个字符长并且以“04”和“08”开头的内容时进行身份验证。即使字符串中有字母
标签: c++ login codeblocks registration