Привет, я новичок в программировании на C.Я написал код, который берет содержимое из входного файла для создания связанного списка.Так что все имена связаны между собой.Том связан с Джеком и так далее.входной файл:
tom
jack
tom
mark
tom
jake
Я написал функцию, которая подсчитывает количество вхождений, однако, независимо от того, что я пытаюсь, я продолжаю получать предупреждения, и счет tom
всегда 0
.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXN 50
typedef struct node {
char name[MAXN];
struct node *next;
}
node;
int count( node* head, char search_for)
{
node* current = head;
int count = 0;
while (current != NULL)
{
if (current->name== search_for)
count++;
current = current->next;
}
return count;
}
int main (int argc, char **argv) {
FILE *file = argc > 1 ? fopen (argv[1], "r") : stdin;
if (file == NULL)
return 1;
char buf[MAXN];
node *first = NULL, *last = NULL;
while (fgets (buf, MAXN, file)) {
node *head = malloc (sizeof(node));
if (head == NULL) {
perror ("malloc-node");
return 1;
}
buf[strcspn(buf, "\n")] = 0;
strcpy (head->name, buf);
head->next = NULL;
if (!last)
first = last = head;
else {
last->next = head;
last = head;
}
}
if (file != stdin)
fclose(file);
node *ptr = first;
printf("count of tom is %d", count(ptr->name, 't'));
return 0;
}