close
標題:

關於C++的分割字串

發問:

各位懂C++的大大們好小弟我對我的程式有點問題-------如下-------#include#include#include#includeusing namespace std; vector split(string input,const char * delimiters){ vector vec; char *temp; char... 顯示更多 各位懂C++的大大們好 小弟我對我的程式有點問題 -------如下------- #include #include #include #include using namespace std; vector split(string input,const char * delimiters){ vector vec; char *temp; char inputCharArray[input.length()]; strcpy(inputCharArray,input.c_str()); temp=strtok(inputCharArray,delimiters); while(temp!=NULL){ vec.push_back(temp); temp=strtok(NULL,delimiters); } return vec; } int main(){ string input="hello,split,demo"; vector vector=split(input,","); string input1="123,456,789"; vector vector=split(input1,","); ///***** for(int i = 0 ; i < vector.size() ; i++){ cout<' token 此段是我尋找其他大大們的字串分割的方法 想知道在 ///***** 的地方發生了什麼問題 謝謝大大們解答 更新: ------3/25補------- 大大你好,我照你說的改成result 她出現了result沒有宣告的錯誤 然後我加入了string result;之後 她一樣在標記處出現了expected primary-expression before '>' token 其實我想問的是她在 string input="hello,split,demo"; vector vector=split(input,","); 這裡是可行的 但為什麼我使用了第2次 (也就是標記處 卻有這個錯誤 希望大大們幫解答

aa.jpg

 

此文章來自奇摩知識+如有不便請留言告知

最佳解答:

0. vector 雖是 STL container, 但不是基礎型別, 也可將變數命名為 vector 不過閱讀觀感不好, 改成 strings 1. 陣列是不能動態指定的 char inputArray[input.length()]; 改為指標, new, 記得最後要 delete. 且為了放最後的 NULL 字元, 長度 = input.length() + 1 char *inputArray = new char[input.length()+1] .2. int main() { ..... return 0; } #include #include #include #include using namespace std; vector split(string input, const char * delimiters){ vector vec; char *temp; int len = input.length(); char *inputCharArray = new char[len+1]; strcpy(inputCharArray,input.c_str()); temp=strtok(inputCharArray,delimiters); while(temp!=NULL){ vec.push_back(temp); temp=strtok(NULL,delimiters); } delete [] inputCharArray; return vec; } int main(){ string input="hello,split,demo"; vector strings; strings = split(input,","); for(int i = 0 ; i < strings.size() ; i++){ cout<" 沒有正確語法

其他解答:

vector vector=split(input1,","); ///*****for(int i = 0 ; i < vector.size() ; i++){ cout< result=split(input1,","); ///*****for(int i = 0 ; i < result.size() ; i++){ cout<
arrow
arrow

    ceui4w8 發表在 痞客邦 留言(0) 人氣()