2014-09-21 42 views
1

我的輸入來自多行文本的文件。在用fgets()獲得一行後,如何創建一個包含該行中單詞的數組,然後我可以迭代該單詞?即。從「粉紅色弗洛伊德」到「粉紅色」,「弗洛伊德」。如何使用fgets中的一行創建一組單詞?

int main() { 
    char line[500]; 
    while(fgets(line, sizeof(line), stdin) != NULL) { 
     ... 
    } 
    return 0; 
} 
+1

1.製作一個新的陣列; 2.遍歷行中的單詞並將每個單詞複製到新數組中。 – 2014-09-21 23:56:44

回答

1

您可以使用strtok()函數從一行文本中提取單詞。 見How does the strtok function in C work?http://www.cplusplus.com/reference/cstring/strtok/

strtok()功能將修改的內容line[],但 我想這是對這種用法可以的,因爲你只是寫了一行輸入有 ,你很快就會寫輸入的另一行了它。

您將不得不分配一個單獨的數組來保存指向單個單詞的指針。 如果你打算在讀取下一行輸入後繼續使用這個數組,你將需要製作strtok()返回的字符串的新副本,因爲它返回的是 是指向char line[500]的指針,下一行輸入將會覆蓋它們。

相關問題