2013-10-02 39 views
0

我要在C++中編寫一個名爲splitLine()的函數。 有人可以幫忙嗎?我真的很困惑C++ strtok函數分詞

splitLine() { 

    string temp = aLine; 
    string *tempLine = strtok(temp, " "); 
    free(temp) 
    countNum = sizeOf(tempLine); 

    } 
+0

它應該接受'string'作爲參數。 – nhgrif

+0

在另一個文件中它已經聲明瞭一個字符串aLine。這可以用指針操縱 – NewFile

回答

1

你誤會了說明。

strtok函數對nul終止字符數組(又名C字符串)而不是C++字符串進行操作。因此,創建一個臨時的「串」,其實就是這個

// create temporary string which is a copy of aLine 
char* temp = new char[aLine.size() + 1]; 
strcpy(temp, aLine.c_str()); 

// extract words from temp 
... 

// free temporary string 
delete[] temp; 

打破臨時串入的話與strtok方式編寫循環strtok將一次提取一個單詞。我相信你可以在互聯網上找到這方面的例子。所以我會把它留給你。

+0

對不起,我的英語實際上並不是很好。非常感謝你的幫助。它解釋了很多,但我不太明白你是什麼意思,從溫度提取單詞 – NewFile

+1

轉''快速棕色狐狸'''「快速」「棕色」「狐狸」'。 – nhgrif

+0

gotcha!謝謝:) – NewFile