我有一个链接列表,其中包含两个“字符串”,一个用于搜索,另一个用于替换。我还有一个文本文件,我应该打开并逐行阅读,然后查看单词是否存在于“词典”(链接列表)中,如果是这样,我必须将其替换为单词的定义。然后将更改后的文本写入新的文本文件,所以我认为在阅读时应该使用缓冲区。 问题是,我不知道如何遍历链表。到目前为止,我有这两个词,但它只能搜索第一个循环中:迭代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'。 –