this program is phone book..
it supposed to edit, enter, delet entries..
but..
when I compile, it gives these messages
strucructure.c.c: In function `deleteentry':
strucructure.c.c:137: warning: passing arg 1 of `searchbook' from incompatible pointer type
strucructure.c.c: In function `editentry':
strucructure.c.c:147: warning: passing arg 1 of `searchbook' from incompatible pointer type
strucructure.c.c:148: warning: passing arg 1 of `newentry' makes pointer from integer without a cast
strucructure.c: undefined reference to `listbook'
I try to fix it, but it still gives me these warnings and error messages.
Code:
#include <stdio.h>
struct entry
{
char name[30];
char phoneNo[12];
char email[20];
};
struct entry addressbook[100];
int addresssize = 100;
char newentry(struct entry *input, int i);
char getinput(struct entry *input);
void deleteentry(struct entry *input);
void editentry(struct entry *input);
int searchbook(struct entry *input);
int srarch(char n[30]);
void listphonebook(struct entry *input);
void menu();
main()
{
char menusel;
int i = 1;
int counter = 0;
do
{
scanf("%c", &menusel);
switch(menusel)
{
case '1':
newentry(addressbook, counter);
break;
case '2':
deleteentry(addressbook);
break;
case '3':
editentry(addressbook);
break;
case '4':
searchbook(addressbook);
break;
case '5':
listbook(addressbook);
break;
case '6':
i=2;
}
}while(i<=1);
}
void menu()
{
printf("1. Add a new entry\n");
printf("2. Delete an entry\n");
printf("3. Edit an entry\n");
printf("4. Search Phone Book\n");
printf("5. List Phone Book\n");
printf("6. Quit\n");
printf("Select menu: \n");
}
char newentry(struct entry *input, int i)
{
int inputcheck;
int inputcheck2;
int inputcheck3;
printf("Please Enter a name: ");
inputcheck = scanf("%c", &input[i].name);
if(inputcheck ==0 )
{
printf("Please Enter a name: ");
inputcheck = scanf("%c", &input[i].name);
}
printf("Please Enter a phone number: ");
inputcheck2 = scanf("%c", &input[i].phoneNo);
if(inputcheck2 ==0 )
{
printf("Please Enter a phone number: ");
inputcheck2 = scanf("%c", &input[i].phoneNo);
}
printf("Please Enter e-mail address: ");
inputcheck3 = scanf("%c", &input[i].email);
if(inputcheck3 ==0 )
{
*input[i].email = ' ';
}
}
char getinput(struct entry *input)
{
int inputcheck4;
char name2[30];
printf("Please Enter a name: ");
inputcheck4 = scanf("%c", &name2);
if(inputcheck4 ==0 )
{
printf("Please Enter a name: ");
inputcheck4 = scanf("%c", &name2);
}
return ;
}
void deleteentry(struct entry *input)
{
int index;
char storedname[30];
storedname[30] = getinput(input);
index = searchbook(storedname);
addressbook[index] = addressbook[addresssize - 1];
}
void editentry(struct entry *input)
{
char findname[30];
int index;
findname[30] = getinput(input);
index = searchbook(findname);
newentry(findname[30], index);
}
int searchbook(struct entry *input)
{
int num;
char getname[30];
getname[30] = getinput(input);
num = search(getname);
return num;
}
int search(char n[30])
{
int i;
for (i=0; i< addresssize -1; ++i)
{
if (n== addressbook[i].name)
{
return i;
}
else
{
return -1;
}
}
}
void listphonebook(struct entry *input)
{
int i=0;
while (i<=100)
{
printf("%c ", addressbook[i].name);
printf("%c ", addressbook[i].phoneNo);
printf("%c \n", addressbook[i].email);
i++;
}
}