常用字符串解析与处理方法
来源:互联网 发布:下载强力卸载软件 编辑:程序博客网 时间:2024/06/05 14:51
一、字符串中变量提取
① scanf,可以通过特定的格式将一个字符串的变量直接分离出来,如下:
对“IPAddr=192.168.2.1:12345,ID=25535,Time=3,Speed=10END”进行参数提取可以用
paraCnt= sscanf(paraStr,"%[^=]=%[^:]:%[^,],%[^,],%[^,],%[^E]",headerTemp,ipAddrTemp,portTemp,idTemp,timeTemp,aralmSpeedTemp)来处理。这其中有4个变量,提取方法简单。值得注意的是其中几个数字的长度是会发生变化的,如果单纯靠字符的位置进行解析有时是会出错的,scanf利用特殊符号进行分隔可以有效解决这个问题。
再举一个例子,如果你需要处理GPS或BD发来的定位信息,例如“$GPGGA,063952.000,4002.229934,N,11618.096855,E,1,4,2.788,37.254,M,0,M,,*71”
每条字符串可能包含很多变量,有的甚至可达20-30个,再使用之前的方法显然会很不方便。这时可以结合字符串设置的规则与scanf,比如在GPS或BD协议中每个变量之间都使用“,”隔开,这样通过查询是第几个变量后再通过scanf就可以把变量提取出来了。
使用这个方法在字符串提取浮点数时尤为有用。
②专用库函数。我们很容易遇到去判断与解析比如IP地址、MAC地址、子网掩码等字符串的情况,如果自己去实现是需要花一点时间编写和调试,后来发现可以使用NetASCII_Str_to_MAC()、NetASCII_MAC_to_Str()、NetASCII_Str_to_IP()、NetASCII_IP_to_Str()等一系列的函数去处理,即简单又可靠,岂不是比自己写省时省事,高大上多了。
二、变量转为字符串
sprintf(),主要功能是把格式化的数据写入某个字符串中,是个变参函数。例如通过以下方式就可以把存储在数组中的IP地址转化为AT指令中的字符串命令了
strcat(TCPCmd,(char*)"AT+CIPSTART=\"TCP\",\"");
for(i=0;i<3;i++){
sprintf(tempBuf,"%d",IPpara[i]);
strcat(TCPCmd,tempBuf);
strcat(TCPCmd,(char *)".");
}
三、其他
在处理浮点数时,也会遇到与数组转换的情况,通常是设置一个结构体或共用体,来逐字节的读出,把浮点数转为数组比较或存储,反过来逐字节存入后,整体读出就可以得到浮点数的值了。
- 常用字符串解析与处理方法
- 常用字符串解析与处理方法
- Shell处理字符串常用方法
- Shell处理字符串常用方法
- Shell处理字符串常用方法
- JavaScript常用字符串处理方法
- Shell处理字符串常用方法
- string字符串常用处理方法
- Shell处理字符串常用方法
- 常用的字符串处理方法
- Shell处理字符串常用方法
- Shell常用处理字符串方法
- 常用的字符串处理方法
- JavaScript常用字符串处理方法
- python字符串处理常用方法
- iOS字符串常用处理方法
- Golang 常用字符串处理方法
- 字符串处理与string解析
- 测试csdn代码显示
- 数据结构实验之链表四:有序链表的归并
- 目标跟踪算法——KCF入门详解
- 线程实现tcp服务器
- C/C++编程小练习 大数乘方
- 常用字符串解析与处理方法
- Android SDK 更新那点事
- C udp实现c/s
- MATLAB 如何将程序打包成EXE 可执行文件
- airbnb-react-styleguide-chinese
- 二手电脑与Ubuntu的经历-1-适合装Linux的电脑
- (OK) android-5.0 sensor工作原理—sensorservice的启动(二)
- Android开发——开关控件Switch和ToggleButtn
- 几种常见的加密方式介绍