Code:
#include <stdio.h>
#include <string.h>
#define name_len 10
#define title_len 40
struct book {
int booknum;
char title[title_len+1];
char author[name_len+1];
int pagenum;
}book1, book2, book3, book4;
struct library {
struct book book[4];
} liba, libb, libc;
struct library getdata(struct library lib);
void search(struct library lib1, struct library lib2, struct library lib3);
main()
{
int i,j,q=0, sal1[6]={0}, sal2[5]={0};
struct book book[4];
struct library lib[3];
printf("Enter the details for Library A :\n\n");
lib[0] = getdata(lib[0]);
printf("Enter the details for LIbrary B :\n\n");
lib[1] = getdata(lib[1]);
printf("Enter the details for Library C :\n\n");
lib[2] = getdata(lib[2]);
search(lib[0], lib[1], lib[2]);
}
struct library getdata(struct library lib)
{ int i,j,k;
for(i=0; i<4; i++)
{
lib.book[i].booknum=(i+1);
printf("Book #%d - Title :\n", lib.book[i].booknum);
scanf("%s", &lib.book[i].title);
printf("Book #%d - Author :\n", lib.book[i].booknum);
scanf("%s", &lib.book[i].author);
printf("Book #%d - Number of Pages :\n", lib.book[i].booknum);
scanf("%d", &lib.book[i].pagenum);
}
return lib;
}
void search(struct library lib1, struct library lib2, struct library lib3)
{
int i, j=0,m=0;
char name[name_len+1];
printf("\nEnter name of Author to search for :\n");
scanf("%s", &name);
printf("\n\nLib_A\n\n");
printf("---------------------------------------------\n");
printf("# Title Author No. of Pages\n");
printf("---------------------------------------------\n");
{for(i=0, j=0; i<4; i++)
for(m=0; name[m]!='\0';m++)
{if(lib1.book[i].author[m] == name[m] && name[m+1]=='\0')
{printf("%d %-12s %-15s %d\n", lib1.book[i].booknum, lib1.book[i].title, lib1.book[i].author, lib1.book[i].pagenum);
j++;}}}
if(j==0)
printf("\nNo books written by %s available in Lib_A", name);
else if(j!=0)
printf("\n%d book(s) written by %s available in Lib_A", j, name);
printf("\n\nLib_B\n\n");
printf("---------------------------------------------\n");
printf("# Title Author No. of Pages\n");
printf("---------------------------------------------\n");
{for(i=0, j=0; i<4; i++)
for(m=0; name[m]!='\0';m++)
{ if(lib2.book[i].author[m] == name[m] && name[m+1]=='\0')
{printf("%d %-12s %-15s %d\n", lib2.book[i].booknum, lib2.book[i].title, lib2.book[i].author, lib2.book[i].pagenum);
j++;}}}
if(j==0)
printf("\nNo books written by %s available in Lib_B", name);
else if(j!=0)
printf("\n%d book(s) written by %s available in Lib_B", j, name);
printf("\n\nLib_C\n\n");
printf("---------------------------------------------\n");
printf("# Title Author No. of Pages\n");
printf("---------------------------------------------\n");
{for(i=0, j=0; i<4; i++)
for(m=0; name[m]!='\0';m++)
{ if(lib3.book[i].author[m] == name[m] && name[m+1]=='\0')
{printf("%d %-12s %-15s %d\n", lib3.book[i].booknum, lib3.book[i].title, lib3.book[i].author, lib3.book[i].pagenum);
j++;}}}
if(j==0)
printf("\nNo books written by %s available in Lib_C", name);
else if(j!=0)
printf("\n%d book(s) written by %s available in Lib_C", j, name);
}