C语言编写一个程序,检查用户输入的字符串是否符合电话号码的特定条件:长度为11位,全部由数字组成,第一个字符必须是1,第二个字符只能是3, 4, 5, 7,8其中的一个,判断优先级长度合法>每一位都是数字>第1位合法>第2位合法。
时间: 2024-11-25 17:16:17 浏览: 13
在C语言中,你可以创建一个函数来验证用户输入的电话号码。下面是一个简单的程序示例:
```c
#include <stdio.h>
#include <stdbool.h>
#include <ctype.h>
bool isValidPhoneNumber(char phone[]) {
int length = strlen(phone);
// 检查长度
if (length != 11) {
printf("错误:电话号码长度应为11位。\n");
return false;
}
// 检查第一位字符
if (phone[0] != '1') {
printf("错误:第一位字符必须是1。\n");
return false;
}
// 检查第二位字符
if (!isdigit(phone[1]) || (phone[1] != '3' && phone[1] != '4' && phone[1] != '5' && phone[1] != '7')) {
printf("错误:第二位字符只能是3, 4, 5, 或者 7。\n");
return false;
}
// 检查其余9位是否全为数字
for (int i = 2; i < length; i++) {
if (!isdigit(phone[i])) {
printf("错误:除了第一位和第二位,其他位置只能包含数字。\n");
return false;
}
}
// 如果所有检查都通过,返回true
return true;
}
int main() {
char input[12];
printf("请输入电话号码(格式:1XXX XXXXXXXX):");
fgets(input, sizeof(input), stdin);
// 移除换行符
input[strcspn(input, "\n")] = '\0';
if (isValidPhoneNumber(input)) {
printf("电话号码有效。\n");
} else {
printf("电话号码无效。\n");
}
return 0;
}
```
在这个程序中,`isValidPhoneNumber` 函数逐项检查电话号码的各个条件,如果满足则继续,如果不满足则打印错误消息并返回 `false`。`main` 函数接收用户输入,并调用 `isValidPhoneNumber` 进行验证。
阅读全文