程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 實現c++的string的split功能,實現cstringsplit

實現c++的string的split功能,實現cstringsplit

編輯:關於C語言

實現c++的string的split功能,實現cstringsplit


今天寫程序,遇到了一個要實現string.split()這個的一個函數。python裡面有,qt裡面有,c++裡面沒有。照著網上抄了一個,放在這裡。有需要的時候直接拽過去用,否則老是寫了小例子就扔,用的時候沒有,也是個麻煩事

例如 “aa*bb*cc” 會存儲成vector<string> "aa" "bb" "cc"

// temp1.cpp : 定義控制台應用程序的入口點。
//

#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
using namespace std;

 

int _tmain(int argc, _TCHAR* argv[])
{
char a[] = "abc*123*xyz";  //目標是解析成 abc  123 xyz 然後存儲在下面的變量 vector<string>中
string strArry = a;
vector<string> strArryList;


size_t last = 0;
size_t index = strArry.find_first_of("*",last);  //找到last坐標後面的第一個*
while( index != std::string::npos )//找到一個推進vector一個,一直到找到了最後
{
strArryList.push_back( strArry.substr(last, index-last));
last = index +1;
index = strArry.find_first_of("*",last);
}
if(index - last > 0) //記得把最後一個推進去.這裡是"xyz"
{
strArryList.push_back( strArry.substr(last, index-last));
}


for(int i = 0; i < strArryList.size(); i++)
std::cout<<strArryList[i]<<std::endl;
getchar();
return 0;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved