开发手机系统软件中的一个子功能,实现从手机短信内容中识别和提取电话号码(7位或8位)和手机号码(11位),并将其存入通讯录中。 2.设计分析 要从手机短信的内容中识别电话号码或手机号码,必须从短信的第一个字符开始查找,找到第一个数值型字符(‘0’~‘9’),然后依次判断其后的字符,若其后有连续的6个或7个数值型字符,则将其识别成电话号码并提取,若其后有连续的11个数值型字符,则将其识别成手机号码并提取。继续向后搜索直到整个短信查找完毕。 3.存储结构类型定义 ①短信的存储结构类型定义 typedef struct{ char word[200];/*短信内容*/ int length; /*短信长度*/ }Message; ②通讯录中记录的存储结构类型的定义 typedef struct { char name[8]; /*姓名*/ char phone[11]; /*电话号码或手机号码*/ }Note;
时间: 2024-02-09 21:10:26 浏览: 28
好的,您的问题是如何实现从手机短信中识别和提取电话号码和手机号码,并将其存入通讯录中?
首先,我们需要定义两个结构体,一个是短信的结构体,一个是通讯录中记录的结构体,如您所提供的代码。接下来,我们需要实现一个函数,用于从短信内容中提取电话号码和手机号码,并将其存入通讯录中。
以下是一个简单的实现思路:
1. 定义一个函数,传入短信结构体指针和通讯录结构体指针作为参数;
2. 在函数中,遍历短信内容,从第一个字符开始查找,如果找到数字字符,则继续向后查找,直到找到连续的6个或7个数字字符或者11个数字字符;
3. 如果找到了6个或7个数字字符,则将其识别为电话号码,并提取出来,存入通讯录结构体中;
4. 如果找到了11个数字字符,则将其识别为手机号码,并提取出来,存入通讯录结构体中;
5. 继续向后搜索,直到整个短信内容查找完毕;
6. 返回通讯录结构体指针,表示存储完毕。
以下是一个简单的示例代码:
```
Note* extract_phone_numbers(Message* message, Note* note) {
int i, j, k;
int length = message->length;
char* content = message->word;
char phone_number[12];
int phone_number_length = 0;
for (i = 0; i < length; i++) {
if (isdigit(content[i])) {
phone_number[phone_number_length++] = content[i];
for (j = i + 1; j < length; j++) {
if (isdigit(content[j])) {
phone_number[phone_number_length++] = content[j];
if (phone_number_length == 6 || phone_number_length == 7 || phone_number_length == 11) {
phone_number[phone_number_length] = '\0';
if (phone_number_length == 6 || phone_number_length == 7) {
strncpy(note->phone, phone_number, phone_number_length);
} else if (phone_number_length == 11) {
strncpy(note->phone, phone_number, phone_number_length);
}
phone_number_length = 0;
break;
}
} else {
phone_number_length = 0;
break;
}
}
}
}
return note;
}
```
需要注意的是,以上代码仅为示例代码,可能存在实际应用中需要优化的地方。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)