通讯录程序中检查电话号码格式是否正确的c语言代码
时间: 2024-05-07 09:17:21 浏览: 9
以下是一个简单的C语言函数,用于检查电话号码格式是否正确:
```c
int checkPhoneNumber(char* phoneNumber) {
int i = 0;
while (phoneNumber[i] != '\0') {
if ((phoneNumber[i] < '0' || phoneNumber[i] > '9') && phoneNumber[i] != '-' && phoneNumber[i] != '(' && phoneNumber[i] != ')') {
return 0;
}
i++;
}
return 1;
}
```
函数接受一个字符串参数 phoneNumber,将其逐个字符检查是否为数字、-、(或)。如果遇到非法字符,返回0;否则返回1。
相关问题
C语言写通讯录完整代码
以下是一个简单的C语言通讯录完整代码,包括添加、删除、查找、修改和显示通讯录中所有联系人的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NAME_LEN 20
#define PHONE_LEN 11
#define MAX_CONTACTS 100
typedef struct Contact {
char name[NAME_LEN];
char phone[PHONE_LEN];
} Contact;
Contact contacts[MAX_CONTACTS];
int num_contacts = 0;
void add_contact() {
if (num_contacts == MAX_CONTACTS) {
printf("The contacts list is full.\n");
return;
}
Contact new_contact;
printf("Enter name: ");
scanf("%s", new_contact.name);
printf("Enter phone number: ");
scanf("%s", new_contact.phone);
contacts[num_contacts++] = new_contact;
printf("Contact added.\n");
}
void delete_contact() {
char name[NAME_LEN];
printf("Enter name to delete: ");
scanf("%s", name);
int index = -1;
for (int i = 0; i < num_contacts; i++) {
if (strcmp(contacts[i].name, name) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("Contact not found.\n");
return;
}
for (int i = index; i < num_contacts - 1; i++) {
contacts[i] = contacts[i + 1];
}
num_contacts--;
printf("Contact deleted.\n");
}
void find_contact() {
char name[NAME_LEN];
printf("Enter name to find: ");
scanf("%s", name);
int index = -1;
for (int i = 0; i < num_contacts; i++) {
if (strcmp(contacts[i].name, name) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("Contact not found.\n");
return;
}
printf("Name: %s\nPhone: %s\n", contacts[index].name, contacts[index].phone);
}
void modify_contact() {
char name[NAME_LEN];
printf("Enter name to modify: ");
scanf("%s", name);
int index = -1;
for (int i = 0; i < num_contacts; i++) {
if (strcmp(contacts[i].name, name) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("Contact not found.\n");
return;
}
printf("Enter new phone number: ");
scanf("%s", contacts[index].phone);
printf("Contact modified.\n");
}
void print_contacts() {
printf("Contacts:\n");
for (int i = 0; i < num_contacts; i++) {
printf("%s: %s\n", contacts[i].name, contacts[i].phone);
}
}
int main() {
int choice;
while (1) {
printf("Choose an option:\n");
printf("1. Add contact\n2. Delete contact\n3. Find contact\n4. Modify contact\n5. Print contacts\n6. Exit\n");
scanf("%d", &choice);
switch (choice) {
case 1:
add_contact();
break;
case 2:
delete_contact();
break;
case 3:
find_contact();
break;
case 4:
modify_contact();
break;
case 5:
print_contacts();
break;
case 6:
exit(0);
default:
printf("Invalid choice.\n");
}
}
return 0;
}
```
这个通讯录程序使用了结构体来存储联系人的姓名和电话号码。程序中定义了一些常量,如姓名和电话号码的最大长度,以及通讯录最多可以存储的联系人数量。然后定义了一个Contact结构体类型和一个存储Contact类型的数组。
程序中实现了五个功能:添加联系人、删除联系人、查找联系人、修改联系人以及显示所有联系人。在主函数中,使用了一个无限循环来让用户选择要执行的操作。每次循环中,程序会打印出菜单,并根据用户的选择执行相应的操作。执行完操作后,程序会回到循环开始处,等待用户下一次操作。用户可以在任何时候选择退出程序。
注意,这个程序中没有对输入进行任何的错误检查,例如输入的电话号码是否合法等。在实际编写程序时,应该考虑到这些情况并进行相应的处理。
用C语言完成通讯录管理系统的设计与实现的完整代码
以下是一个简单的通讯录管理系统的完整代码,仅供参考:
```c
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
// 联系人结构体
struct contact {
char name[20];
char phone[20];
char email[40];
};
// 添加联系人
void add_contact(struct contact *list, int size) {
if (size >= MAX_SIZE) {
printf("通讯录已满,无法添加联系人!\n");
return;
}
printf("请输入联系人的姓名:");
scanf("%s", list[size].name);
printf("请输入联系人的电话号码:");
scanf("%s", list[size].phone);
printf("请输入联系人的电子邮件地址:");
scanf("%s", list[size].email);
printf("联系人添加成功!\n");
}
// 删除联系人
void delete_contact(struct contact *list, int size) {
if (size == 0) {
printf("通讯录为空,无法删除联系人!\n");
return;
}
printf("请输入要删除的联系人的姓名:");
char name[20];
scanf("%s", name);
int index = -1;
for (int i = 0; i < size; i++) {
if (strcmp(list[i].name, name) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到联系人 %s!\n", name);
return;
}
for (int i = index; i < size - 1; i++) {
list[i] = list[i + 1];
}
printf("联系人 %s 删除成功!\n", name);
}
// 修改联系人信息
void modify_contact(struct contact *list, int size) {
if (size == 0) {
printf("通讯录为空,无法修改联系人信息!\n");
return;
}
printf("请输入要修改的联系人的姓名:");
char name[20];
scanf("%s", name);
int index = -1;
for (int i = 0; i < size; i++) {
if (strcmp(list[i].name, name) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到联系人 %s!\n", name);
return;
}
printf("请输入联系人的电话号码:");
scanf("%s", list[index].phone);
printf("请输入联系人的电子邮件地址:");
scanf("%s", list[index].email);
printf("联系人 %s 修改成功!\n", name);
}
// 查找联系人
void search_contact(struct contact *list, int size) {
if (size == 0) {
printf("通讯录为空,无法查找联系人!\n");
return;
}
printf("请输入要查找的联系人的姓名:");
char name[20];
scanf("%s", name);
int index = -1;
for (int i = 0; i < size; i++) {
if (strcmp(list[i].name, name) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到联系人 %s!\n", name);
return;
}
printf("姓名:%s\n", list[index].name);
printf("电话号码:%s\n", list[index].phone);
printf("电子邮件地址:%s\n", list[index].email);
}
int main() {
struct contact list[MAX_SIZE];
int size = 0;
while (1) {
printf("\n");
printf("通讯录管理系统\n");
printf("1. 添加联系人\n");
printf("2. 删除联系人\n");
printf("3. 修改联系人信息\n");
printf("4. 查找联系人\n");
printf("5. 退出程序\n");
printf("请选择操作:");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
add_contact(list, size);
size++;
break;
case 2:
delete_contact(list, size);
size--;
break;
case 3:
modify_contact(list, size);
break;
case 4:
search_contact(list, size);
break;
case 5:
printf("程序已退出!\n");
return 0;
default:
printf("无效的操作!\n");
break;
}
}
return 0;
}
```
注意,这个代码仅仅是一个简单的示例,实际应用中还需要考虑更多的情况,例如输入检查、错误处理、界面美化等。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)