Header Ads

ad728
  • New Updates

    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

    Post Top Ad

    ad728

    Post Bottom Ad

    ad728