void save_contact(struct contact* pc)
时间: 2023-04-06 07:00:58 浏览: 124
这个问题是关于编程的,我可以回答。void save_contact(struct contact* pc)是一个函数声明,它的作用是保存联系人信息。其中,struct contact是一个结构体类型,pc是一个指向该结构体类型的指针。函数的具体实现需要根据具体的需求来编写。
相关问题
#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAX_SMS_LENGTH 200#define MAX_NAME_LENGTH 8#define MAX_PHONE_LENGTH 11typedef struct { char word[MAX_SMS_LENGTH]; /*短信内容*/ int length; /*短信长度*/} Message;typedef struct { char name[MAX_NAME_LENGTH]; /*姓名*/ char phone[MAX_PHONE_LENGTH]; /*电话号码或手机号码*/} Note;void extract_phone_number(Message* message, Note* note) { int start = 0; int phone_start = -1; int phone_end = -1; while (start < message->length) { if (message->word[start] >= '0' && message->word[start] <= '9') { phone_start = start; phone_end = start; start++; while (start < message->length && message->word[start] >= '0' && message->word[start] <= '9') { phone_end = start; start++; } if (phone_end - phone_start == 6 || phone_end - phone_start == 7) { strncpy(note->phone, message->word + phone_start, phone_end - phone_start + 1); note->phone[phone_end - phone_start + 1] = '\0'; } else if (phone_end - phone_start == 10 || phone_end - phone_start == 11) { strncpy(note->phone, message->word + phone_start, phone_end - phone_start + 1); note->phone[phone_end - phone_start + 1] = '\0'; } if (strlen(note->phone) > 0) { break; } } else { start++; } }}void save_to_contact(Note* note) { // 将 note 存储到通讯录中}int main() { Message message; Note note; // 读取短信 fgets(message.word, MAX_SMS_LENGTH, stdin); message.length = strlen(message.word) - 1; message.word[message.length] = '\0'; memset(note.name, 0, MAX_NAME_LENGTH); memset(note.phone, 0, MAX_PHONE_LENGTH); extract_phone_number(&message, ¬e); save_to_contact(¬e); return 0;}
这段代码的功能是从输入的短信中提取出电话号码,并将电话号码存储到通讯录中。
具体实现如下:
1. 定义了两个结构体,一个是 Message,用于存储短信内容和短信长度;另一个是 Note,用于存储姓名和电话号码。
2. 定义了一个函数 extract_phone_number,用于从短信中提取电话号码。该函数会遍历短信内容的每个字符,找到第一个数字字符后,就开始查找电话号码的起始位置和结束位置。找到电话号码后,根据电话号码的长度分别判断是固定电话还是手机号码,并将电话号码存储到 Note 结构体中。
3. 定义了一个函数 save_to_contact,用于将 Note 结构体中的姓名和电话号码存储到通讯录中。
4. 在主函数中,先读取输入的短信内容,然后调用 extract_phone_number 函数提取电话号码,最后将姓名和电话号码存储到通讯录中。
该代码还有一些需要改进的地方,例如提取电话号码的逻辑还不够完善,只能处理一些简单的情况;同时,如果短信中包含多个电话号码,该代码也只能提取其中的一个。如果需要更加完善的功能,需要针对具体的需求进行修改和扩展。
#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAX_SMS_LENGTH 200#define MAX_NAME_LENGTH 8#define MAX_PHONE_LENGTH 11typedef struct { char word[MAX_SMS_LENGTH]; /*短信内容*/ int length; /*短信长度*/} Message;typedef struct { char name[MAX_NAME_LENGTH]; /*姓名*/ char phone[MAX_PHONE_LENGTH]; /*电话号码或手机号码*/} Note;void extract_phone_number(Message* message, Note* note) { int start = 0; int phone_start = -1; int phone_end = -1; while (start < message->length) { if (message->word[start] >= '0' && message->word[start] <= '9') { phone_start = start; phone_end = start; start++; while (start < message->length && message->word[start] >= '0' && message->word[start] <= '9') { phone_end = start; start++; } if (phone_end - phone_start == 6 || phone_end - phone_start == 7) { strncpy(note->phone, message->word + phone_start, phone_end - phone_start + 1); note->phone[phone_end - phone_start + 1] = '\0'; } else if (phone_end - phone_start == 10 || phone_end - phone_start == 11) { strncpy(note->phone, message->word + phone_start, phone_end - phone_start + 1); note->phone[phone_end - phone_start + 1] = '\0'; } if (strlen(note->phone) > 0) { break; } } else { start++; } }}void save_to_contact(Note* note) { printf("请输入姓名:"); fgets(note->name, MAX_NAME_LENGTH, stdin); note->name[strlen(note->name) - 1] = '\0'; /*将最后的换行符去掉*/ printf("已将 %s 的电话号码 %s 存储到通讯录中。\n", note->name, note->phone); /*将 note 存储到通讯录中*/}int main() { Message message; Note note; char input[MAX_SMS_LENGTH + 1]; /*输入缓存*/ // 读取短信 printf("请输入一条短信:\n"); fgets(input, MAX_SMS_LENGTH + 1, stdin); message.length = strlen(input) - 1; strncpy(message.word, input, message.length); message.word[message.length] = '\0'; memset(note.name, 0, MAX_NAME_LENGTH); memset(note.phone, 0, MAX_PHONE_LENGTH); extract_phone_number(&message, ¬e); save_to_contact(¬e); return 0;}怎么读取信息
这个代码实现了一个简单的从输入中提取电话号码并存储到通讯录的功能。具体流程如下:
1. 定义了两个结构体 Message 和 Note,分别表示短信和联系人信息。
2. 实现了一个函数 extract_phone_number,该函数接收一个 Message 指针和一个 Note 指针,从 Message 结构体中提取出电话号码,并将其存储到 Note 结构体中。
3. 实现了一个函数 save_to_contact,该函数接收一个 Note 指针,从用户输入中读取联系人姓名,并将姓名和电话号码存储到通讯录中。
4. 在主函数中,首先读取用户输入的短信内容,然后调用 extract_phone_number 和 save_to_contact 函数分别提取电话号码并存储到通讯录中。
如果您有具体的问题或需求,请提出来,我会尽力帮助您。
阅读全文