一、协议规定
1、热点信息(字符串):
SSID=xxx;PASSWORD=xxxxxxx;
2、服务器与端口号(字符串):
SERVER_IP=xxx.xxx.xxx.xxx;PORT=xxx;
二、实现获取当前字符串在原字符串中的位置函数
1//返回当前子串在原字符串中的索引
2int Sub_String_Index(char *str,char *sub_str)
3{
4 char *p1 = NULL ;
5 char *__str = str ;
6 char *__sub_str = sub_str ;
7 p1 = strstr(__str,__sub_str);
8 return p1 - __str ;
9}
三、整体测试验证
1#include <stdio.h>
2#include <string.h>
3//定义一个信息存储结构体
4typedef struct device_net_info
5{
6 char wifi_ssid[20];
7 char wifi_password[20];
8 char server_ip[20];
9 char server_port[10];
10}WIFI_INFO;
11
12WIFI_INFO wifi_info ;
13
14//返回当前子串在原字符串中的索引
15int Sub_String_Index(char *str,char *sub_str)
16{
17 char *p1 = NULL ;
18 char *__str = str ;
19 char *__sub_str = sub_str ;
20 p1 = strstr(__str,__sub_str);
21 return p1 - __str ;
22}
23
24int main(void)
25{
26 int index1 = 0, index2 = 0;
27 char *p1 = NULL ;
28 char *str = "SSID=602;PASSWORD=13602584536;";
29 char *str1 = "SERVER_IP=120.78.136.134;PORT=9002;";
30 //拷贝wifi ssid
31 index1 = Sub_String_Index(str,"=");
32 index2 = Sub_String_Index(str,";");
33 memcpy(wifi_info.wifi_ssid,str+index1+1,index2-index1-1);
34 printf("ssid:%s\n",wifi_info.wifi_ssid);
35 //拷贝wifi password==>从分号的位置的下一个开始拷贝数据
36 p1 = str+index2+1 ;
37 index1 = Sub_String_Index(p1,"=") ;
38 index2 = Sub_String_Index(p1,";") ;
39 memcpy(wifi_info.wifi_password,p1+index1+1,index2-index1-1);
40 printf("password:%s\n",wifi_info.wifi_password);
41 //拷贝server_ip
42 index1 = Sub_String_Index(str1,"=");
43 index2 = Sub_String_Index(str1,";");
44 memcpy(wifi_info.server_ip,str1+index1+1,index2-index1-1);
45 printf("server_ip:%s\n",wifi_info.server_ip);
46 //拷贝server_port
47 p1 = str1+index2+1 ;
48 index1 = Sub_String_Index(p1,"=") ;
49 index2 = Sub_String_Index(p1,";") ;
50 memcpy(wifi_info.server_port,p1+index1+1,index2-index1-1);
51 printf("server_port:%s\n",wifi_info.server_port);
52 return 0 ;
53}
运行结果: