您现在的位置是:亿华云 > 应用开发
C++解析一些特殊符号Tab、换行符号
亿华云2025-10-09 03:46:37【应用开发】0人已围观
简介前言:我们经常会遇到一些Linux内核信息需要,比如一个wifi数据,中间是用tab键盘隔开的,然后每一行用换行符进行区分,如下所示的数据第一位置是:wifi名称 第二个位置是:信号强度 第三个位置是
前言:
我们经常会遇到一些Linux内核信息需要,析特比如一个wifi数据,殊符中间是号T换行用tab键盘隔开的,然后每一行用换行符进行区分,符号如下所示的析特数据
第一位置是:wifi名称 第二个位置是:信号强度 第三个位置是:信号类型2.4Ghz或者5Ghz 第四个位置是:加密类型 第五个类型是:MAC地址
遇到这样的数据,我们比较常见的殊符C函数解析是用while循环去匹配字符串里面的\t(tab键),\n(换行符号)等,号T换行然后用C标准库里面str函数,符号例如strncpy进行复制或者strstr去查找,析特类似于下面所示:
int i, j ; i = 0; j = strlen(strIn) - 1; while(strIn[i] == || strIn[i] == \t) ++i; while(strIn[j] == || strIn[j] == \t) --j; strncpy(strOut, strIn + i , j - i + 1);那么我们怎么用C++解析呢,最近刚好解析了部分wifi信息,源码下载殊符所以给大家分享哈这部分。号T换行
解析代码
对应上面的符号wifi信息的表,我们看到了一行有五个数据,析特这时候打包收到了一个string类型的殊符wifi信息。
第一件事情,号T换行我们先确认好解析的范围,即知道最开始一位和最后一位,设置好recivemsg.begin 和 recivemsg.
第二件事情,进行识别tab符号和换行符号之后进行分段
第三件事情,把分好的数据塞到一个vector容器里面,然后因为每一行都有五个数据,所以我们就可以按照0~5一组的数据进行分发给各处。
实际C++代码如下:
vector<string> Parse_Wifi_List(string& msg) { vector<string> words; if(msg.empty()) return words; string::iterator temp_p = msg.begin(); string sepword; bool bit_true = false; while(temp_p != msg.end()) { if(/* * temp_p == || */ * temp_p == \t || * temp_p == \n) { if(bit_true) { words.push_back(sepword); PP_INFO("seword :%s",sepword.c_str()); sepword.clear(); } bit_true = false; temp_p++; continue; } else { bit_true = true; sepword += *temp_p; } if(*temp_p ++ == \0) { break; } // else // { // PP_INFO("%d %d %c",msg.end(),*temp_p,*temp_p); // } } // for(auto point : words) // { // printf(".%s\n",point.c_str()); // } //for(uint16_t i =0;i<words.size();i+=5) //{ // printf("[]%s,%s\n",words[i].c_str(),words[i+1].c_str(),words[i+3].c_str()); //} return words; }使用此代码解析LOG如下:
结语
这就是我分享的一个简单的网站模板C++解析一些特殊符号的实践,如果大家有更好的想法和需求,也欢迎大家加我好友交流分享哈。
本文转载自微信公众号「羽林君」,可以通过以下二维码关注。转载本文请联系羽林君公众号。
作者:良知犹存,白天努力工作,晚上原创公号号主。公众号内容除了技术还有些人生感悟,一个认真输出内容的职场老司机,也是一个技术之外丰富生活的人,摄影、音乐 and 篮球。关注我,与我一起同行。源码库
很赞哦!(8318)
相关文章
- 如果你的潜在终端必须是这个米(域名),那么潜在终端并不多,也没有硬通货,那么你的域名应该在终端有兴趣购买时出售。否则,你可能得自己留着吃。
- 聊聊单片机能用 C++ 开发吗?
- 女朋友问敖丙:什么是分布式事务?
- 服务器性能指标 负载(Load)分析及问题排查
- 用户邮箱的静态密码可能已被钓鱼和同一密码泄露。在没有收到安全警报的情况下,用户在适当的时间内不能更改密码。在此期间,攻击者可以随意输入帐户。启用辅助身份验证后,如果攻击者无法获取移动电话动态密码,他将无法进行身份验证。这样,除非用户的电子邮件密码和手机同时被盗,否则攻击者很难破解用户的邮箱。
- Nginx服务器的六种负载均衡策略详解
- 欧拉开发者大会即将开启:全球芯片、整机、软件厂商共建数字基础设施开源操作系统
- 模块化数据中心有什么好处?
- 最后提醒我们,域名到期后要及时更新域名,否则可能会丢掉域名,每次抢先注册都不会成功。
- 在Netty服务被N次攻击之后,终于抓到现行了!