我有一個鏈接列表,其中包含兩個「字符串」,一個用於搜索,另一個用於替換。我還有一個文本文件,我應該打開並逐行閱讀,然後查看單詞是否存在於「詞典」(鏈接列表)中,如果是這樣,我必須將其替換爲單詞的定義。然後將更改後的文本寫入新的文本文件,所以我認爲在閱讀時應該使用緩衝區。 問題是,我不知道如何遍歷鏈表。到目前爲止,我有這兩個詞,但它只能搜索第一個循環中:迭代C中的鏈接列表
char *textLine = NULL;
size_t textlen = 0;
ssize_t readText;
struct node *n = malloc(sizeof(*n));
n = head;
char buffer[MAX_L];
while((readText = getline(&textLine, &textlen, t)) != -1) {
char *t = strtok(textLine, " ");
while (t != NULL)
{
if(strcmp(t,n->word) == 0)
{
// do something
}
else
{
// do something
}
n = head;
t = strtok(NULL, " ");
}
}
「頭」是空的,我想這就是爲什麼它只是搜索的第一個字我真的不知道如何遍歷行和鏈表。
不應該在內部'while'循環內有某種'n = n-> next;'賦值或類似的操作。而不是僅僅做'n = head'。 –