日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

c++實現(xiàn)split函數(shù)

 桔?;ê迷聢A 2011-01-12
今天工作因原因,需要實現(xiàn)一個split的功能,以前也做過,但一直沒有把他記下來,所以又重新寫了一次。這次做個筆記以備后用,各位網(wǎng)友感興趣也可以直接拿來用過。
例子:
一個這樣的字符串:“123,456,789,0”。把他截取成這樣的字符串數(shù)組 [123],[456],[789],[0]。眾所周知c++默認沒有提供這樣功能的函數(shù),下面我們自己來實現(xiàn)它
不多說直接上代碼:
#include <iostream>  
#include <string>  
#include <vector> 
#include <TCHAR.H>
using namespace std;  
vector<string> splitEx(const string& src, string separate_character)  
{  
     vector<string> strs;  
         int separate_characterLen = separate_character.size();//分割字符串的長度,這樣就可以支持如“,,”多字符串的分隔符  
         int lastPosition = 0,index = -1;  
         while (-1 != (index = src.find(separate_character,lastPosition)))  
      {  
          strs.push_back(src.substr(lastPosition,index - lastPosition));  
         lastPosition = index + separate_characterLen;  
      }  
     string lastString = src.substr(lastPosition);//截取最后一個分隔符后的內(nèi)容  
         if (!lastString.empty())  
         strs.push_back(lastString);//如果最后一個分隔符后還有內(nèi)容就入隊  
         return strs;  
}  
int _tmain(int argc, _TCHAR* argv[])  
{  
   // string s = "$ T3,E797.7,Ta16.8,Tc17.9,L7*";  
    string s = "123,456,789,0,888";
    string del = ",";    
    vector<string> strs = splitEx(s, del);    
 for ( unsigned int i = 0; i < strs.size(); i++)    
 {    
  cout << strs[i].c_str() << endl;  
 }    
    return 0;    

輸出:
123
456
789
0
888

PS:純粹個人使用,沒有經(jīng)過嚴格測試,也許還有一些考慮不周的地方,歡迎大家指出。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多