Initializing Value of a Character Array (String)
Initializing Value of a
Character Array (String)
हम एक Char
प्रकार के Array को भी प्रारम्भिक मान प्रदान
कर सकते हैं | Array में Character Assign करने के दो तरीके हैं |
पहले
तरीके में Array के हर Character को Single Quote में लिखा जाता है |
इसमें
अंतिम Character
को NULL करना जरुरी होता है |
दूसरे
तरीके में Array को Assign किये
जाने वाले सभी Characters की पूरी String का Double Quote में एक साथ लिखा जाता है |
इसमें
String
के अंत में NULL Character लिखना जरुरी नहीं
होता है | देखें निम्न
उदाहरण
char name[7] = {‘R’,’a’,’s’,’h’,’I’,’d’,’\0’};
or
char name[7] = {“Rashid”};
इस प्रकार से ये
दोनों ही Statement सही हैं |
हम
इन में से किसी भी प्रकार के Statement को Use कर
सकते है | ध्यान दें की यदि
Array
की Size , Input किये गए String के बाद NULL Character के लिए नहीं बचता है तो भी “C”
Compiler Array के अंत में NULL Character लगा
देता है और हमारा Input किया गया अंतिम Character हट जाता है |
जैसे ऊपर के ही
उदाहरण को देखें | यदि हम इस Array
में Size 7 के बजाये 6
कर दें तो Array में केवल Rashi ही Store होगा , क्योंकि Rashi के अंतिम Character d के स्थान पर NULL
Character प्रतिस्थापित हो जाएगा |
एक
अन्य तरीका भी है जिसमें हम Array की Size
Define नहीं करते हैं |
“C”
Compiler स्वयं ही Size ले लेता है |
इसी
उदाहरण को वापस देखें |
char name[ ] = {‘R’,’a’,’s’,’h’,’i',’d’}
or
char name[ ] = {“Rashid”}
यदि हम इस प्रकार
से Array
में मान Initialize करें , तो “C”
Compiler स्वयं ही Array की Size 7 मान लेता है | लेकिन
इसका प्रयोग केवल तभी किया जा सकता है , जब हमें तुरन्त मान Initialize
कर देना हो | यदि
हमें String
Run Time में Input करना हो , तो यह Statement
काम नहीं करता है | अब
हम SHADAB
ALAM String को Program के Run Time में Array में Input करते हैं |
हमने पहले भी
बताया था कि scanf() Function कुछ Special
Character जैसे कि Blank Space , Carriage Return , Form
Feed , New Line , Tab key के मिलते ही Terminate हो जाता है , इसलिए यदि हमें scanf() Function द्वारा
String को Array में Store करना हो , तो हमें Loop का प्रयोग करना होगा |
क्योंकि हम जानते
हैं कि Array
में Index Number के आधार पर Input होते हैं | Loop
का प्रयोग करने से Array में ये विशेष Character
भी एक सामान्य Character की तरह ही Input होंगे |
इस
प्रोग्राम में हमें एक – एक Characters को Loop की सहायता से Input करना है और विभन्न Index
Numbers के अनुसार विभन्न Locations पर Input
किये गए Characters को Store करना है | फिर
जिस Array
में विभन्न Locations पर ये Characters
Store हुए हैं , उस Array को Output में Print करने पर Input किया
गया String ज्यों का त्यों प्राप्त हो जाता है |
इस
समस्या के समाधान के लिए Loop को तब तक चलाया जाना
चाहिए जब तक कि New Line ना मिल जाए |
New
Line तब प्राप्त होती है , जब हम Enter Key Press करते हैं |
Program
#include<stdio.h>
main()
{
int x;
char name[20],chara;
//Inputting String
printf("Enter String and Press Enter :");
fflush(stdin);
for(x=0; x!='\n'; x++)
{
scanf("%c",&chara);
name[x]=chara;
}
//Printing Inputted Array Elements
printf("\n%s",name);
getch();
}
जब Program
Execute होता है , तब scanf() Function द्वारा
chara में प्रथम character Input होता
है | यहां x
का मान 0 होने से Array के
Index Number का मान भी 0 होता है ,
जिससे Input होने वाला प्रथम Character Array की name [0] Location पर Store हो जाता है | दूसरे
Iteration
में x = 1 हो जाता है और Input होने वाला अक्षर name [1] Location पर Store हो जाता है |
इस प्रकार ये
क्रम तब तक चलता रहता है , जब तक कि हम Enter Press नहीं करते | जैसे
ही हम Enter
press करते हैं , for Loop Terminate हो जाता
है | name नाम
के Array में Input किये गए सभी Character
Store रहते हैं | इसमें
Store
सभी Characters के समूह के कारण ये एक String
हो जाता है इसलिए String को Print करने के लिए %s Control String का प्रयोग किया गया
है |
इसी प्रकार से हम
दो Strings
को जोड़ सकते हैं और दो Strings की तुलना कर
सकते हैं | इन प्रक्रियाओं
के लिए भी हमें एक – एक Character के साथ प्रक्रिया
करनी होगी | उदाहरण के लिए
मानलो कि हमारे पास दो String हैं , जिनमें क्रमशः
Rashid व Razique Store हैं |
यदि
हमें इन्हें जोड़ना हो , तो एक अन्य Array लेना
होगा और फिर एक Array के सभी Character
को क्रम से इस Array में Store करना
होगा फिर एक Space इस Array में जोड़ना
होगा और उसके बाद अंत में दूसरे Array के Elements को Space के आगे से Input करना
होगा |
No comments