structure is a collection of variables of different data types
under a single name. It is similar to a class in that, both
holds a collecion of data of different data types.
For example: You want to store some
information about a person: his/her name, citizenship number and salary. You
can easily create different variables name, citNo, salary to store these
information separately.
How to declare a structure in C++ programming?
The struct keyword defines a structure type
followed by an identifier (name of the structure).
Then
inside the curly braces, you can declare one or more members (declare variables
inside curly braces) of that structure. For example:
struct Person
{
int age;
float
salary;
};
Here
a structure person is defined which has two members: age and salary.
C++
Program to assign data to members of a structure variable and display it.
#include <iostream>
using namespace std;
struct Person
{
int age;
float salary;
};
int main()
{
Person p1;
cout <<
"Enter
age: ";
cin >>
p1.age;
cout <<
"Enter
salary: ";
cin >>
p1.salary;
cout <<
"\nDisplaying
Information." << endl;
cout <<"Age: " << p1.age << endl;
cout << "Salary: " << p1.salary;
return 0;
}
Output
Enter age: 27
Enter salary: 1024.4
Displaying Information.
Age: 27
Salary: 1024.4
EXAMPLE :
#include <iostream>
using namespace std;
int main()
{
struct product {
int weight;
double price;
} apple, banana, melon;
apple.weight=10;
apple.price=20;
cout << "\nDisplaying Information." << endl;
cout <<"Apple weight " <<apple.weight << endl;
cout << "apple price " << apple.price;
return 0;
}
EXAMPLE :
#include <iostream>
using namespace std;
int main()
{
struct product {
int weight;
double price;
} apple, banana, melon;
apple.weight=10;
apple.price=20;
cout << "\nDisplaying Information." << endl;
cout <<"Apple weight " <<apple.weight << endl;
cout << "apple price " << apple.price;
return 0;
}
#include <iostream>
#include <cstring>
using namespace std;
struct Books {
char title[50];
char author[50];
char subject[100];
int book_id;
};
int main() {
struct Books Book1; // Declare Book1 of type Book
struct Books Book2; // Declare Book2 of type Book
// book 1 specification
strcpy( Book1.title, "Learn C++
Programming");
strcpy( Book1.author, "Chand Miyan");
strcpy( Book1.subject, "C++ Programming");
Book1.book_id = 6495407;
// book 2 specification
strcpy( Book2.title, "Telecom Billing");
strcpy( Book2.author, "Yakit Singha");
strcpy( Book2.subject, "Telecom");
Book2.book_id = 6495700;
// Print Book1 info
cout << "Book 1 title : " << Book1.title <<endl;
cout << "Book 1 author : " << Book1.author <<endl;
cout << "Book 1 subject : " << Book1.subject <<endl;
cout << "Book 1 id : " << Book1.book_id <<endl;
// Print Book2 info
cout << "Book 2 title : " << Book2.title <<endl;
cout << "Book 2 author : " << Book2.author <<endl;
cout << "Book 2 subject : " << Book2.subject <<endl;
cout << "Book 2 id : " << Book2.book_id <<endl;
return 0;
}
When the
above code is compiled and executed, it produces the following result −
Book 1 title : Learn C++ Programming
Book 1 author : Chand Miyan
Book 1 subject : C++ Programming
Book 1 id : 6495407
Book 2 title : Telecom Billing
Book 2 author : Yakit Singha
Book 2 subject : Telecom
Book 2 id : 6495700
#include <iostream> #include <cstring> using namespace std; int main(){ struct student { int roll_no; string name; int phone_number; }; struct student p1 = {1,"Brown",123443}; struct student p2, p3; p2.roll_no = 2; p2.name = "Sam"; p2.phone_number = 1234567822; p3.roll_no = 3; p3.name = "Addy"; p3.phone_number = 1234567844; cout << "First Student" << endl; cout << "roll no : " << p1.roll_no << endl; cout << "name : " << p1.name << endl; cout << "phone no : " << p1.phone_number << endl; cout << "Second Student" << endl; cout << "roll no : " << p2.roll_no << endl; cout << "name : " << p2.name << endl; cout << "phone no : " << p2.phone_number << endl; cout << "Third Student" << endl; cout << "roll no : " << p3.roll_no << endl; cout << "name : " << p3.name << endl; cout << "phone no : " << p3.phone_number << endl; return 0; }
Structure and Function in C++
In this previous tutorial we learnt about structures, the compound data type that groups different types of variables. In this tutorial, we will learn how to pass structures as an argument to the function and how to return the structure from the function.
How to pass structure as an argument to function
Here we have a function
printStudentInfo()
which takes structure Student
as an argument and prints the details of student using structure varaible. The important point to note here is that you should always declare the structure before function declarations, otherwise you will get compilation error.#include <iostream> using namespace std; struct Student{ char stuName[30]; int stuRollNo; int stuAge; }; void printStudentInfo(Student); int main(){ Student s; cout<<"Enter Student Name: "; cin.getline(s.stuName, 30); cout<<"Enter Student Roll No: "; cin>>s.stuRollNo; cout<<"Enter Student Age: "; cin>>s.stuAge; printStudentInfo(s); return 0; } void printStudentInfo(Student s){ cout<<"Student Record:"<<endl; cout<<"Name: "<<s.stuName<<endl; cout<<"Roll No: "<<s.stuRollNo<<endl; cout<<"Age: "<<s.stuAge; }
Output:
Enter Student Name: Rick Enter Student Roll No: 666123 Enter Student Age: 19 Student Record: Name: Rick Roll No: 666123 Age: 19
Array of Structures
We can also make an array of structures. In the first example in structures, we stored the data of 3 students. Now suppose we need to store the data of 100 such children. Declaring 100 separate variables of the structure is definitely not a good option. For that, we need to create an array of structures.Let's see an example for 5 students.#include <iostream> #include <cstring> using namespace std; struct student { int roll_no; string name; int phone_number; }; int main(){ struct student stud[5]; int i; for(i=0; i<5; i++)
{ //taking values from user
cout << "Student " << i + 1 << endl;
cout << "Enter roll no" << endl;
cin >> stud[i].roll_no;
cout << "Enter name" << endl;
cin >> stud[i].name;
cout << "Enter phone number" << endl;
cin >> stud[i].phone_number;
}
for(i=0; i<5; i++)
{ //printing values cout << "Student " << i + 1 << endl; cout << "Roll no : " << stud[i].roll_no << endl; cout << "Name : " << stud[i].name << endl; cout << "Phone no : " << stud[i].phone_number << endl; } return 0; }
Pointers to Structures
Like we have pointers to int, char and other data-types, we also have pointers pointing to structures. These pointers are called structure pointers.
Now, how to define a pointer to a structure? The answer is below:
struct structure_name
{
data-type member-1;
data-type member-1;
data-type member-1;
data-type member-1;
};
int main()
{
struct structure_name *ptr;
}
Let's see an example using structure pointer.
#include <iostream>
#include <cstring>
using namespace std;
struct student
{
string name;
int roll_no;
};
int main(){
struct student stud = {"Sam",1};
struct student *ptr;
ptr = &stud;
cout << stud.name << stud.roll_no << endl;
cout << ptr->name << ptr->roll_no << endl;
return 0;
}
No comments:
Post a Comment