2017-06-04 43 views
-2

只是想知道我們怎麼能爲cpp定義一個拆分函數。當我在python中創建一個需要拆分的程序時,我在cpp中將程序轉換爲拆分函數並不存在。是否存在cpp中的替代函數 例如:如何在cpp中像java和python一樣實現分割函數?

str- "this is split try" 
str1[]=str.split(" "); 

的這條線的exeution後: str1應該包含{"this","is","split","try"}

+2

可能類似於['標準:: partition'(HTTP://en.cppreference。 COM/W/CPP /算法/分區)?請指定您的特定用例。 –

+0

歡迎來到Stack Overflow。請花些時間閱讀[The Tour](http://stackoverflow.com/tour),並參閱[幫助中心](http://stackoverflow.com/help/asking)中的資料,瞭解您可以在這裏問。 –

+0

@Galik OP讓它不清楚實際上是否要分裂。 –

回答

0
#include <iostream> 
#include <vector> 

using namespace std; 
typedef vector<string> array; 

array split(const string &str, char ch){ 
    auto itr = str.begin(); 
    array result; 
    string temp; 
    while(itr != str.end()){ 
     if(*itr != ch) 
      temp.push_back(*itr); 
     else{ 
      result.push_back(move(temp)); 
     } 
     ++itr; 
    } 
    return result; 
} 

int main() 
{ 
    string str = "my name is sumit jindal"; 
    array arr = split(str, ' '); 
    for(auto it = arr.begin(); it<arr.end(); ++it) 
     cout << *it << endl; 
    return 0; 
} 
+0

'array arr {istream_iterator {str},istream_iterator {}};'不那麼詳細 – Ap31