#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;}这个代码打开怎么使用
时间: 2024-02-28 21:54:43 浏览: 82
SeqList.h #include <stdio.h> //包含标准输入输出流的头文件 #include <assert.h
这个代码是一个简单的短信处理程序,可以从输入中读取一条短信,提取其中的电话号码,并将号码存储到通讯录中。你可以按照以下步骤使用它:
1. 打开一个C/C++编译器,比如gcc或者clang。
2. 将上述代码复制到编译器中,并保存为一个名为sms.c的文件。
3. 编译代码。如果你使用gcc,可以在终端中输入以下命令进行编译:
```
gcc -o sms sms.c
```
4. 运行程序。在终端中输入以下命令:
```
./sms
```
5. 程序会提示你输入一条短信,输入完毕后按回车键。
6. 程序会自动提取短信中的电话号码,并将号码存储到通讯录中。
注意:这个程序没有提供交互界面,输入和输出都是通过终端进行的。如果你想更改代码来适应自己的需求,可以自行修改。
阅读全文