最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++解析特殊符號(hào)tab、換行符號(hào)實(shí)例代碼

 更新時(shí)間:2021年05月16日 10:34:47   作者:良知猶存  
這篇文章主要給大家介紹了關(guān)于C++解析特殊符號(hào)tab、換行符號(hào)的相關(guān)資料,這個(gè)功能在我們?nèi)粘i_(kāi)發(fā)中經(jīng)常會(huì)遇到,需要的朋友可以參考下

前言:

我們經(jīng)常會(huì)遇到一些Linux內(nèi)核信息需要,比如一個(gè)wifi數(shù)據(jù),中間是用tab鍵盤(pán)隔開(kāi)的,然后每一行用換行符進(jìn)行區(qū)分,如下所示的數(shù)據(jù)

第一位置是:wifi名稱(chēng) 第二個(gè)位置是:信號(hào)強(qiáng)度 第三個(gè)位置是:信號(hào)類(lèi)型2.4Ghz或者5Ghz 第四個(gè)位置是:加密類(lèi)型 第五個(gè)類(lèi)型是:MAC地址

遇到這樣的數(shù)據(jù),我們比較常見(jiàn)的C函數(shù)解析是用while循環(huán)去匹配字符串里面的'\t'(tab鍵),'\n'(換行符號(hào))等,然后用C標(biāo)準(zhǔn)庫(kù)里面str函數(shù),例如strncpy進(jìn)行復(fù)制或者strstr去查找,類(lèi)似于下面所示:

    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信息,所以給大家分享哈這部分。

解析代碼

對(duì)應(yīng)上面的wifi信息的表,我們看到了一行有五個(gè)數(shù)據(jù),這時(shí)候打包收到了一個(gè)string類(lèi)型的wifi信息。

第一件事情,我們先確認(rèn)好解析的范圍,即知道最開(kāi)始一位和最后一位,設(shè)置好recivemsg.begin 和 recivemsg.

第二件事情,進(jìn)行識(shí)別tab符號(hào)和換行符號(hào)之后進(jìn)行分段

第三件事情,把分好的數(shù)據(jù)塞到一個(gè)vector容器里面,然后因?yàn)槊恳恍卸加形鍌€(gè)數(shù)據(jù),所以我們就可以按照0~5一組的數(shù)據(jù)進(jìn)行分發(fā)給各處。

實(shí)際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如下:

結(jié)語(yǔ)

這就是我分享的一個(gè)簡(jiǎn)單的C++解析一些特殊符號(hào)的實(shí)踐,如果大家有更好的想法和需求,也歡迎大家加我好友交流分享哈。

到此這篇關(guān)于C++解析特殊符號(hào)tab、換行符號(hào)的文章就介紹到這了,更多相關(guān)C++解析特殊符號(hào)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言 while語(yǔ)句的用法詳解

    C語(yǔ)言 while語(yǔ)句的用法詳解

    本文主要介紹C語(yǔ)言while 語(yǔ)句,這里對(duì)while 循環(huán)做詳細(xì)講解,并提供示例代碼,希望能幫助學(xué)習(xí)C語(yǔ)言的同學(xué)
    2016-07-07
  • C語(yǔ)言鏈表實(shí)現(xiàn)商品庫(kù)存管理系統(tǒng)

    C語(yǔ)言鏈表實(shí)現(xiàn)商品庫(kù)存管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言鏈表實(shí)現(xiàn)商品庫(kù)存管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Qt實(shí)現(xiàn)邊加載數(shù)據(jù)邊顯示頁(yè)面的示例代碼

    Qt實(shí)現(xiàn)邊加載數(shù)據(jù)邊顯示頁(yè)面的示例代碼

    無(wú)論是MFC框架還是QT框架,實(shí)現(xiàn)加載數(shù)據(jù)的等待效果都是很麻煩的,不像WEB端輕輕松松一句代碼就搞定了。本文將通過(guò)Qt實(shí)現(xiàn)邊加載數(shù)據(jù)邊顯示頁(yè)面的功能,需要的可以參考一下
    2022-01-01
  • C++深入分析講解函數(shù)與重載知識(shí)點(diǎn)

    C++深入分析講解函數(shù)與重載知識(shí)點(diǎn)

    C++?允許多個(gè)函數(shù)擁有相同的名字,只要它們的參數(shù)列表不同就可以,這就是函數(shù)的重載(Function?Overloading),借助重載,一個(gè)函數(shù)名可以有多種用途
    2022-06-06
  • C/C++ 宏詳細(xì)解析

    C/C++ 宏詳細(xì)解析

    關(guān)于宏的一些語(yǔ)法問(wèn)題,可以在google上找到。相信我,你對(duì)于宏的了解絕對(duì)沒(méi)你想象的那么多。如果你還不知道#和##,也不知道prescan,那么你肯定對(duì)宏的了解不夠
    2013-09-09
  • C++ float、double判斷是否等于0問(wèn)題

    C++ float、double判斷是否等于0問(wèn)題

    這篇文章主要介紹了C++ float、double判斷是否等于0問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • C語(yǔ)言俄羅斯方塊游戲課程設(shè)計(jì)

    C語(yǔ)言俄羅斯方塊游戲課程設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言俄羅斯方塊游戲課程設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 簡(jiǎn)單掌握桶排序算法及C++版的代碼實(shí)現(xiàn)

    簡(jiǎn)單掌握桶排序算法及C++版的代碼實(shí)現(xiàn)

    桶排序是將要排序的算法按桶分組排序之后再遍歷匯總的一種線性排序算法,下面就讓我們來(lái)通過(guò)小例子簡(jiǎn)單掌握桶排序算法及C++版的代碼實(shí)現(xiàn)^^
    2016-07-07
  • C語(yǔ)言數(shù)組快速入門(mén)詳細(xì)講解

    C語(yǔ)言數(shù)組快速入門(mén)詳細(xì)講解

    數(shù)組是一組有序的數(shù)據(jù)的集合,數(shù)組中元素類(lèi)型相同,由數(shù)組名和下標(biāo)唯一地確定,數(shù)組中數(shù)據(jù)不僅數(shù)據(jù)類(lèi)型相同,而且在計(jì)算機(jī)內(nèi)存里連續(xù)存放,地址編號(hào)最低的存儲(chǔ)單元存放數(shù)組的起始元素,地址編號(hào)最高的存儲(chǔ)單元存放數(shù)組的最后一個(gè)元素
    2022-05-05
  • C語(yǔ)言代碼實(shí)現(xiàn)俄羅斯方塊

    C語(yǔ)言代碼實(shí)現(xiàn)俄羅斯方塊

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言代碼實(shí)現(xiàn)俄羅斯方塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01

最新評(píng)論

抚宁县| 山阳县| 万载县| 墨脱县| 莱州市| 安西县| 德庆县| 平南县| 沾益县| 金昌市| 广安市| 江门市| 海口市| 班玛县| 息烽县| 乳山市| 江门市| 诸暨市| 绥德县| 凤台县| 高台县| 麻栗坡县| 万安县| 宁城县| 蓝山县| 奉化市| 眉山市| 兰西县| 池州市| 凤山县| 西贡区| 洛隆县| 鲁山县| 辉县市| 辰溪县| 龙州县| 舞阳县| 蒙阴县| 彩票| 伊金霍洛旗| 邳州市|