Computer >> Computer tutorials >  >> Programming >> C programming

C program to compare the structure variables


In C programming language, a structure is a collection of different datatype variables, which are grouped together under a single name.

Declaration and initialization of structures

The general form of a structure declaration is as follows −

datatype member1;
struct tagname{
   datatype member2;
   datatype member n;
};

Here,

  • struct is a keyword.
  • tagname specifies the name of structure.
  • member1, member2 specifies the data items that make up structure.

For example,

struct book{
   int pages;
   char author [30];
   float price;
};

Structure variables

There are three methods of declaring structure variables, which are as follows −

First method

struct book{
   int pages;
   char author[30];
   float price;
}b;

Second method

struct{
   int pages;
   char author[30];
   float price;
}b;

Third method

struct book{
   int pages;
   char author[30];
   float price;
};
struct book b;

Initialization and accessing of structures

The link between a member and a structure variable is established by using a member operator (or) a dot operator.

Initialization can be done in the following methods −

First method

struct book{
   int pages;
   char author[30];
   float price;
} b = {100, “balu”, 325.75};

Second method

struct book{
   int pages;
   char author[30];
   float price;
};
struct book b = {100, “balu”, 325.75};

Third method by using a member operator

struct book{
   int pages;
   char author[30];
   float price;
} ;
struct book b;
b. pages = 100;
strcpy (b.author, “balu”);
b.price = 325.75;

Example

Following is the C program for the comparison of structure variables −

struct class{
   int number;
   char name[20];
   float marks;
};
main(){
   int x;
   struct class student1 = {001,"Hari",172.50};
   struct class student2 = {002,"Bobby", 167.00};
   struct class student3;
   student3 = student2;
   x = ((student3.number == student2.number) &&
   (student3.marks == student2.marks)) ? 1 : 0;
   if(x == 1){
      printf("\nstudent2 and student3 are same\n\n");
      printf("%d %s %f\n", student3.number,
      student3.name,
      student3.marks);
   }
   else
   printf("\nstudent2 and student3 are different\n\n");
}

Output

When the above program is executed, it produces the following output −

student2 and student3 are same
2 Bobby 167.000000