C++编程,不适用正则表达式电话号码合法要求: 电话号码由三部分构成 地区码:空白或三位数字 前缀码:非"0"或”1”开头的三位数字 后缀码:四位数字 符合以上要求的为合法电话号码
时间: 2024-02-18 14:05:44 浏览: 67
电话号码本c++代码
4星 · 用户满意度95%
好的,如果您不想使用正则表达式,也可以使用C++的字符串处理函数来实现电话号码的合法性检查。具体实现方式请参考下面的示例代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
bool isValidPhoneNumber(const string& phoneNumber) {
// 检查电话号码长度是否为 8
if (phoneNumber.length() != 8) {
return false;
}
// 检查地区码是否为空白或为三位数字
if (phoneNumber[0] != ' ' && phoneNumber.substr(0, 3) != " ") {
return false;
}
// 检查前缀码是否为非"0"或"1"开头的三位数字
if (phoneNumber[3] == '0' || phoneNumber[3] == '1') {
return false;
}
for (int i = 0; i < 8; i++) {
// 检查后缀码是否为四位数字
if (i >= 4 && !isdigit(phoneNumber[i])) {
return false;
}
// 检查其他字符是否为数字或空白
if (i < 4 && phoneNumber[i] != ' ' && !isdigit(phoneNumber[i])) {
return false;
}
}
return true;
}
int main() {
string phoneNumber;
cout << "请输入电话号码:" << endl;
getline(cin, phoneNumber);
if (isValidPhoneNumber(phoneNumber)) {
cout << "该电话号码是合法的。" << endl;
} else {
cout << "该电话号码不是合法的。" << endl;
}
return 0;
}
```
在上面的代码中,我们定义了一个名为`isValidPhoneNumber`的函数,该函数接收一个`const string&`类型的参数`phoneNumber`,表示要检查的电话号码。在函数中,我们首先检查电话号码的长度是否为8,如果不是,则返回false。然后,我们分别检查电话号码的地区码、前缀码和后缀码是否符合规定,如果不符合,则返回false。最后,我们返回true,表示该电话号码是合法的。
在`main`函数中,我们通过调用`isValidPhoneNumber`函数来检查用户输入的电话号码是否合法。如果合法,则输出"该电话号码是合法的。";否则,输出"该电话号码不是合法的。"。
阅读全文