Я пишу функцию поиска в C, которая использует указатели и структуры. Поиск возможен по имени, используя массив с именем contatcs
с десятью записями. Массив уже инициализирован и заполнен и работает как задумано.
Я пытался решить проблему путем реструктуризации своего кода, но это только усугубляло ситуацию. Возможно, в логике проектирования есть какой-то недостаток, который я не могу найти.
typedef struct
{
char streetname[150];
char city[50];
int zipcode;
}address;
typedef struct
{
char name[50];
int age;
address homeaddress;
}person;
int search (char* name, person *contacts, int size);
[...] // initialization and population of array omitted
int search (char *name, person *contacts, int size)
{
int i;
printf("Input name: ");
char userin = scanf("%s", name);
for(i = 0; i < size; i++)
{
if (strcmp(contacts[i].name, &userin) == 0)
{
printf("Name: %s;", contacts[i].name);
printf(" Age: %d;", contacts[i].age);
printf(" Adress: %s, ", contacts[i].homeaddress.streetname);
printf("%s, ", contacts[i].homeaddress.city);
printf("%d\n", contacts[i].homeaddress.zipcode);
}
}
return 0;
}
Я просто пытаюсь вызвать функцию. Но каждый раз, когда я пытаюсь это сделать, это не работает. Я знаю, что этот вопрос довольно простой, но я не могу найти решение.