I am having issues getting my find employee function to work if someone could take a look and guide me to what needs to be changed that would be good. Thanks,
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct employee
{
char* name;
char ssn[9];
int YearBorn;
int salary;
}employee;
employee* emps[20];
employee e = {"Kyle", "658493867", 1900, 100000};
void display(employee* e)
{
printf("\n%s , %3.3s-%2.2s-%4.4s , %d\n", e->name, &e->ssn, &e->ssn[3], &e->ssn[5], e->YearBorn);
printf("$%d,%.3d\n", e->salary/1000, e->salary%1000);
}
void readEmployee(employee* e)
{
//e.name = (char*)malloc(100);
char buffer[100];
printf("\nEmployee Name: ");
gets(buffer);
e->name = strdup(buffer);
printf("\nEmployee SSN: ");
gets(buffer);
strcpy(e->ssn, buffer);
printf("\nEnter Year you were born: ");
scanf("%d", &e->YearBorn);
printf("\nPlease enter Employee Salary: ");
scanf("%d", &e->salary);
}
employee* createEmployee()
{
employee* emps;
emps = (employee*) malloc (sizeof(employee));
readEmployee(emps);
return emps;
}
releaseEmployee(employee* emp)
{
free (emp->name);
free (emp);
}
listEmployees(employee* emps)
{
display(emps);
}
employee *findEmployee(const char *name)
{
size_t sz = employee_length - 1;
for (; sz < employee_length; --sz)
{
if (strcmp(employee_list[sz]->name, employee_name))
{ return employee_list[sz]; } /* an employee was found */
}
return NULL; /* no employees were found matching employee_name */
}
int main(int argc, char** argv)
{
int select = 0;
while(select != 3)
{
printf("Type one of the following\n\n");
printf("1 for Hire\n");
printf("2 for List\n");
printf("3 for Find Employee");
printf("4 for Quit\n");
scanf("%d",select);
if(select = 1)
{
createEmployee();
getchar();
}
if(select = 2)
{
listEmployees(emp);
}
if(select = 3)
{
findEmployee(emp);
}
if(select = 4)
{
releaseEmployee(emps);
}
return 0;
}