我有一个包含两个“字符串”的链接列表,一个用于搜索,一个用于替换。我还有一个文本文件,我应该逐行打开和阅读,然后查看“字典”(链接列表)中是否存在这些单词,如果存在,我必须用单词的定义替换它。然后将修改后的文本写入一个新的文本文件,所以我想我应该在阅读的时候使用一个缓冲区。
问题是,我不知道如何遍历链表。到目前为止,我有两个词,但它只搜索循环中的第一个词:
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, " ");
}
}
head
是NULL
,我想这就是为什么它只搜索第一个单词我真的不知道我应该如何遍历行和链表。