我正在尝试阅读一本书并看到一个字符出现在哪一行(总共64个字符),我必须使用链接列表。问题是我对链接列表很新,我对它们不是很有信心。此外,我不是最好的指针,我很容易与他们一起滑倒。
下面我添加了当前代码,该代码在第59行给出错误:“错误:下标值既不是数组也不是指针也不是向量”。
我已经阅读了几个人对类似问题的答案,但没有人帮助过。
如果有人能看到我出错的地方(我确定它不止一个地方)我真的很感激,如果你可以帮助我,如果我没有正确使用链表,那么欢迎建设性的批评因为我真的迷失在整个链表概念中。在任何人进入我的代码之前,我对编程相对较新,而且我已经教了几个月,所以我知道它远非完美。此外,如果有人对其当前状态有任何问题,我会在工作时将其修复为LOOK。在此先感谢:)!
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct Characters{
char names[65][50]; //This is the names array
};
struct Charline{
char name;
int line[60000];
struct Charline * next;
};
char NameFun(){
int i=0, choice;
struct Characters c;
FILE *fp = NULL;
fp = fopen("MisNames.txt", "r");
for(i=0; i<65; i++){
fgets(c.names[i], sizeof(c.names[i]), fp); //Gets each name and stores it as an element of an array
}
fclose(fp);
}
int LineScan(){
struct Characters c;
typedef struct Charline l;
l *curr, *head;
int i, j;
int k=0;
char string[300];
FILE *fp = NULL;
fp = fopen("MisNames.txt", "r");
head = NULL;
for(j=0; j<=65; j++){
curr = (l *)malloc(sizeof(l));
curr->name[j] = c.names[j];
curr->next = head;
head = curr;
for(i=1; i<=68116; i++){
printf("BUG");
fgets(string, 250, fp);
printf("BUG");
if(strstr(string, c.names[j])!=0){
curr = (l *)malloc(sizeof(l));
curr->line[k] = i;
curr->next = head;
head = curr;
printf("Line: %d\n");
printf("5BUG");
k++;
}
else{
continue;
}
}
}
}
int main(){
NameFun();
LineScan();
return 0;
}