温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++特殊符号tab和换行符号的使用方法

发布时间:2021-09-26 10:09:00 来源:亿速云 阅读:315 作者:柒染 栏目:开发技术

本篇文章为大家展示了C++特殊符号tab和换行符号的使用方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

    前言:

    我们经常会遇到一些Linux内核信息需要,比如一个wifi数据,中间是用tab键盘隔开的,然后每一行用换行符进行区分,如下所示的数据

    C++特殊符号tab和换行符号的使用方法

    第一位置是:wifi名称 第二个位置是:信号强度 第三个位置是:信号类型2.4Ghz或者5Ghz 第四个位置是:加密类型 第五个类型是:MAC地址

    遇到这样的数据,我们比较常见的C函数解析是用while循环去匹配字符串里面的'\t'(tab键),'\n'(换行符号)等,然后用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信息,所以给大家分享哈这部分。

    解析代码:

    对应上面的wifi信息的表,我们看到了一行有五个数据,这时候打包收到了一个string类型的wifi信息。

    我们应该注意三件事情:

    1. 我们先确认好解析的范围,即知道最开始一位和最后一位,设置好recivemsg.begin recivemsg.

    2. 进行识别tab符号和换行符号之后进行分段

    3. 把分好的数据塞到一个vector容器里面,然后因为每一行都有五个数据,所以我们就可以按照0~5一组的数据进行分发给各处。

    实际代码如下:

    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++特殊符号tab和换行符号的使用方法

    上述内容就是C++特殊符号tab和换行符号的使用方法,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI