某城市用c++代码实现“电话号码由三部分组成,分别是: 地区码—— 空白或三位数字; 前缀—— 非‘0’或‘1’开头的三位数字; 后缀—— 4位数字”判断
时间: 2023-11-08 21:06:03 浏览: 191
电话号码本c++代码
4星 · 用户满意度95%
可以使用正则表达式来判断电话号码是否符合要求。以下是一个简单的实现:
```c
#include <stdio.h>
#include <regex.h>
int main() {
char phone_number[20]; // 假设电话号码最长为20个字符
regex_t regex;
int ret;
// 编译正则表达式
ret = regcomp(®ex, "^\\d{3} [^01]\\d{2} \\d{4}$", REG_EXTENDED);
if (ret) {
printf("正则表达式编译失败\n");
return 1;
}
// 获取电话号码输入
printf("请输入电话号码:");
fgets(phone_number, 20, stdin);
// 匹配正则表达式
ret = regexec(®ex, phone_number, 0, NULL, 0);
if (!ret) {
printf("电话号码符合要求\n");
} else {
printf("电话号码不符合要求\n");
}
// 释放正则表达式内存
regfree(®ex);
return 0;
}
```
这段代码使用正则表达式 `^\\d{3} [^01]\\d{2} \\d{4}$` 来匹配电话号码。其中:
- `^` 表示匹配字符串开头
- `\\d{3}` 表示匹配三个数字
- ` ` 表示一个空格
- `[^01]` 表示除了数字0和1以外的任意一个字符
- `\\d{2}` 表示匹配两个数字
- `\\d{4}` 表示匹配四个数字
- `$` 表示匹配字符串结尾
因此,这个正则表达式可以匹配符合要求的电话号码,即地区码为三个数字,前缀为非0或1开头的三个数字,后缀为四个数字。
阅读全文