C语言编程输入电话号码,对电话号码的合法性进行检查,输出是否合法,不合法在屏幕上输出错误原因。 电话号码合法要求: 电话号码由三部分构成 地区码:空白或三位数字 前缀码:非"0"或”1”开头的三位数字 后缀码:四位数字 符合以上要求的为合法电话号码
时间: 2024-02-12 22:08:47 浏览: 116
好的,针对您的问题,我可以为您提供以下 C 语言代码实现:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char area_code[4], prefix_code[4], suffix_code[5];
int i, valid = 1;
// 输入电话号码
printf("请输入电话号码(格式:'地区码 前缀码 后缀码'):\n");
scanf("%s %s %s", area_code, prefix_code, suffix_code);
// 检查地区码
if (isdigit(area_code[0])) {
if (area_code[1] == '\0' || (isdigit(area_code[1]) && (area_code[2] == '\0' || isdigit(area_code[2])))) {
// 地区码合法
} else {
printf("错误:地区码必须是空白或三位数字!\n");
valid = 0;
}
} else {
printf("错误:地区码必须是空白或三位数字!\n");
valid = 0;
}
// 检查前缀码
if (prefix_code[0] == '0' || prefix_code[0] == '1') {
printf("错误:前缀码不能以'0'或'1'开头!\n");
valid = 0;
} else if (isdigit(prefix_code[0])) {
if (prefix_code[1] == '\0' || (isdigit(prefix_code[1]) && (prefix_code[2] == '\0' || isdigit(prefix_code[2])))) {
// 前缀码合法
} else {
printf("错误:前缀码必须是三位数字!\n");
valid = 0;
}
} else {
printf("错误:前缀码必须是三位数字!\n");
valid = 0;
}
// 检查后缀码
for (i = 0; suffix_code[i] != '\0'; i++) {
if (!isdigit(suffix_code[i])) {
printf("错误:后缀码必须是四位数字!\n");
valid = 0;
break;
}
}
if (i != 4) {
printf("错误:后缀码必须是四位数字!\n");
valid = 0;
}
// 输出结果
if (valid) {
printf("电话号码合法!\n");
} else {
printf("电话号码不合法!\n");
}
return 0;
}
```
这段代码通过 `scanf()` 函数获取用户输入的电话号码,并通过 `isdigit()` 函数判断地区码、前缀码和后缀码是否符合要求,并输出对应的错误信息。如果电话号码符合要求,输出电话号码合法,否则输出电话号码不合法。
希望这段代码对您有所帮助!
阅读全文