• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 11,  comments - 12,  trackbacks - 0
            這是從網(wǎng)上看到的源代碼:(感覺(jué)太麻煩,請(qǐng)問(wèn)哪位大哥能指教我一個(gè)簡(jiǎn)單一點(diǎn)全面一點(diǎn)的分割方法嗎?十分期待)
            #include <vector>
            #include 
            <string>
            #include 
            <iostream>
            #include 
            <algorithm>
            using namespace std;

            typedef basic_string
            <char>::size_type S_T;  
            static const S_T npos = -1;  

            ////trim指示是否保留空串,默認(rèn)為保留。tok可以為任意多個(gè)字符
            vector<string> tokenize(const string& src, string tok,            
                                    
            bool trim=falsestring null_subst="")  
            {  
                
            if( src.empty() || tok.empty() ) 
                    
            throw "tokenize: empty string\0";  
                    
                vector
            <string> v;  
                S_T pre_index 
            = 0, index = 0, len = 0;  
                
            while( (index = src.find_first_of(tok, pre_index)) !=npos )  
                
            {  
                    
            if( (len = index-pre_index)!=0 )  
                        v.push_back(src.substr(pre_index, len));  
                    
            else if(trim==false)  
                        v.push_back(null_subst);  
                    pre_index 
            = index+1;  
                }
              
                
            string endstr = src.substr(pre_index);  
                
            if( trim==false ) 
                    v.push_back( endstr.empty()
            ?null_subst:endstr );  
                
            else if!endstr.empty() ) 
                    v.push_back(endstr);  
                
            return v;  
            }
             
            //delimit為一個(gè)字符,嚴(yán)格分割
            vector<string> split(const string& src, string delimit, string null_subst="")  
            {  
                
            if( src.empty() || delimit.empty() ) 
                    
            throw "split:empty string\0";    
                vector
            <string> v;  
                S_T deli_len 
            = delimit.size();  
                
            long index = npos, last_search_position = 0;  
                
            while( (index=src.find(delimit,     
                    last_search_position))
            !=npos )  
                
            {  
                    
            if(index==last_search_position)  
                        v.push_back(null_subst);  
                    
            else  
                        v.push_back( src.substr(last_search_position, index
            -   
                        last_search_position) );  
                    last_search_position 
            = index + deli_len;  
                }
              
                
            string last_one = src.substr(last_search_position);  
                v.push_back( last_one.empty()
            ? null_subst:last_one );  
                
            return v;  
            }
               

            //測(cè)試如下:
            int main(int argc, char* argv[])
            {
                
            string src = ",ab,cde;,,fg,," ;  
                
            string tok = ",;" ;   
                vector
            <string> v1 = tokenize(src, tok ,true);  
                vector
            <string> v2 = tokenize(src, tok ,false,     
                    
            "<null>");    
                cout
            <<"-------------v1:"<<endl;  
                
            for(int i=0; i<v1.size();i++)  
                
            {  
                    cout
            <<v1[i]<<endl;  
                }
               
                cout
            <<"-------------v2:"<<endl;  
                
            for(int j=0; j<v2.size();j++)  
                
            {  
                    cout
            <<v2[j].c_str()<<endl;  
                }
              
                
            try{  
                    
                    
            string s = "1;2;3;4";  
                    
            string del = ";";//"###";  
                    vector<string> v3 = split(s, del, "<null>");  
                    cout
            <<"-------------v3:"<<endl;  
                    
            for(int k=0; k<v3.size();k++)  
                    
            {  
                        cout
            <<v3[k].c_str()<<endl;  
                    }
              
                }
              
                
            catch (char *s) {  
                    cout
            <<s<<endl;  
                }

                
            return 0;
            }

            posted on 2009-08-07 14:24 人生在于攀登! 閱讀(2935) 評(píng)論(3)  編輯 收藏 引用

            FeedBack:
            # re: 求標(biāo)準(zhǔn)C++字符串string分割
            2009-08-07 22:35 | Sunshine Alike
            日志里有代碼功能,為啥不用?
            你這樣的東西放在上面沒(méi)人愿意看了  回復(fù)  更多評(píng)論
              
            # re: 求標(biāo)準(zhǔn)C++字符串string分割
            2009-08-09 07:18 | 人生在于攀登!
            哦,謝謝提醒啊,以前沒(méi)有注意到!@Sunshine Alike
              回復(fù)  更多評(píng)論
              
            # re: 求標(biāo)準(zhǔn)C++字符串string分割[未登錄](méi)

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            <2010年6月>
            303112345
            6789101112
            13141516171819
            20212223242526
            27282930123
            45678910

            常用鏈接

            留言簿

            隨筆檔案

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久丫精品国产亚洲av| 久久99国产乱子伦精品免费| 香蕉久久一区二区不卡无毒影院| 久久国产精品99久久久久久老狼 | 久久久久久久久久免免费精品| 国产91久久综合| 99久久99久久精品国产片果冻 | 91视频国产91久久久| A级毛片无码久久精品免费| 伊人久久精品影院| 久久精品国产99国产精偷| 一级做a爰片久久毛片看看| 久久91精品国产91久久小草| 亚洲中文字幕伊人久久无码| 99久久精品影院老鸭窝| 亚洲精品午夜国产va久久| 免费精品99久久国产综合精品| 伊人情人综合成人久久网小说| 精品久久久久久亚洲精品 | 蜜臀久久99精品久久久久久小说| AAA级久久久精品无码区| 久久久久久久久久久久中文字幕| 欧美伊人久久大香线蕉综合69| 91精品国产91久久| 国产成人无码久久久精品一| 亚洲精品成人网久久久久久| 久久久久99精品成人片| 国产99久久久久久免费看| 久久精品草草草| 久久精品一区二区三区不卡| 久久精品国产亚洲av影院| 久久人妻少妇嫩草AV蜜桃| 久久精品国产99国产精品| 99久久99久久精品国产片| 亚洲午夜久久久精品影院| 久久精品国产精品亚洲毛片| 亚洲AV无码一区东京热久久| 久久精品国产亚洲av麻豆蜜芽| 久久亚洲国产最新网站| 三级三级久久三级久久 | 中文字幕乱码人妻无码久久|