संरचना विभिन्न डेटाटाइप चर का एक संग्रह है, जिसे एक ही नाम के तहत समूहीकृत किया गया है।
संरचना की विशेषताएं
सी प्रोग्रामिंग भाषा में संरचना की विशेषताएं इस प्रकार हैं -
-
असाइनमेंट ऑपरेटर का उपयोग करके विभिन्न डेटाटाइप के सभी संरचना तत्वों की सामग्री को इसके प्रकार के किसी अन्य संरचना चर में कॉपी करना संभव है।
-
जटिल डेटाटाइप को संभालने के लिए, किसी अन्य संरचना के भीतर संरचना बनाना बेहतर होता है, जिसे नेस्टेड संरचनाएं कहा जाता है।
-
एक फ़ंक्शन के लिए एक संपूर्ण संरचना, संरचना के अलग-अलग तत्वों और संरचना के पते को पारित करना संभव है।
-
स्ट्रक्चर पॉइंटर्स बनाना संभव है।
संरचनाओं की घोषणा और आरंभीकरण।
संरचना घोषणा का सामान्य रूप इस प्रकार है -
datatype member1; struct tagname{ datatype member2; datatype member n; };
यहाँ,
- संरचना कीवर्ड है।
- टैगनाम संरचना का नाम निर्दिष्ट करता है।
- सदस्य1, सदस्य2 डेटा आइटम हैं।
उदाहरण के लिए,
struct book{ int pages; char author [30]; float price; };
कार्यक्रम
निम्नलिखित सी प्रोग्राम है संरचनाओं का उपयोग करके नामों को वर्णानुक्रम में क्रमबद्ध करने के लिए -
#include<stdio.h> #include<string.h> struct tag{ char name[10]; int rno; }; typedef struct tag node; node s[5]; sort(int no){ int i,j; node temp; for(i=0;i<no-1;i++) for(j=i+1;j<no;j++) if(strcmp(s[i].name,s[j].name)>0){ temp=s[i]; s[i]=s[j]; s[j]=temp; } } void main(){ int no,i; fflush(stdin); printf("Enter The Number Of Students:"); scanf("%d",&no); for(i=0;i<no;i++){ printf("Enter The Name:"); fflush(stdin); gets(s[i].name); printf("Enter the Roll:"); scanf("%d",&s[i].rno); } sort(no); for(i=0;i<no;i++){ printf("%s\t",s[i].name); printf("%d\n",s[i].rno); } }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Enter The Number of Students:5 Enter The Name:Priya Enter the Roll:3 Enter The Name:Hari Enter the Roll:5 Enter The Name:Pinky Enter the Roll:7 Enter The Name:Lucky Enter the Roll:1 Enter The Name:Krishna Enter the Roll:2 Hari 5 Krishna 2 Lucky 1 Pinky 7 Priya 3