String Initialization in C Program – 2 Ways to Initialize

String Initialization in C – हम एक char प्रकार के Array को भी प्रारम्भिक मान प्रदान कर सकते हैं। Array में Character Assign करने के दो तरीके हैं। पहले तरीके में Array के हर Character को Single Quote में लिखा जाता है। इसमें अन्तिम Character को NULL करना जरूरी होता है। दूसरे तरीके में Array को Assign किये जाने वाले सभी Characters की पूरी String को Double Quote में एक साथ लिखा जाता है। इसमें String के अंत में NULL Character लिखना जरूरी नहीं होता है। देखे निम्न उदाहरण:

        char name[6] = {'R', 'a', 'h', 'u', 'l', '\0'};               

                OR

        char name[6] = {"Rahul "};

इस प्रकार से ये दोनों ही Statement सही हैं। हम इन में से किसी भी प्रकार के Statement को Use कर सकते हैं। ध्‍यान दें कि यदि Array की Size, Input किये गए String के बाद NULL Character के लिए नहीं बचता है तो भी “C” Compiler Array के अंत में NULL Character लगा देता है और हमारा Input किया गया अन्तिम Character हट जाता है। जैसे ऊपर के ही उदाहरण को देखें। यदि हम इस Array में Size 6 के बजाय 5 कर दें तो Array में केवल Rahu ही Store होगा, क्योंकि Rahul के अन्तिम Character l के स्थान पर NULL Character प्रतिस्थापित हो जाएगा।

एक अन्‍य तरीका भी है जिसमें हम Array की Size Define नहीं करते हैं। “C” Compiler स्वयं ही Size ले लेता है। इसी उदाहरण को वापस देखें:

        char name[6] = {'R', 'a', 'h', 'u', 'l', '\0'};               

                OR

        char name[6] = {"Rahul "};

यदि हम इस प्रकार से Array के मान Initialize करें, तो “C” Compiler स्वयं ही Array की Size 6 मान लेता है। लेकिन इसका प्रयोग केवल तभी किया जा सकता है, जब हमें तुरन्त मान Initialize कर देना हो। यदि हमें String, Run Time में Input करना हों, तो यह Statement काम नहीं करता है।

अब हम KULDEEP MISHRA String को Program के Run Time में Array में Input करने हेतु एक प्रोग्राम Create करते हैं।

हमने पहले भी बताया था कि scanf() Function कुछ Special Characters जैसे कि Blank Space, Carriage Return, Form Feed, New Line, Tab Key के मिलते ही Terminate हो जाता है, इसलिए यदि हमें scanf() Function द्वारा String को Array में Store करना हो, तो हमें Loop का प्रयोग करना होगा।

क्योंकि हम जानते हैं कि Array में मान Index Number के आधार पर Input होते हैं। Loop का प्रयोग करने से Array में ये विशेष Characters भी एक सामान्‍य 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 करते हैं। इस तरह से हम हमारा प्रोग्राम कुछ निम्‍नानुसार तरीके से Create कर सकते हैं:

Program
	#include<stdio.h>

	main()
	{
		int x;
		char name[20], chara;
		clrscr();

		//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 किये गए सभी Characters Store रहते हैं। इसमें Store सभी Characters के समूह के कारण ये एक String हो जाता है इसलिए String को Print करने के लिए %s Control string का प्रयोग किया गया है।

इसी प्रकार से हम दो Strings को जोड सकते हैं और दो Strings की तुलना कर सकते हैं और इन प्रक्रियाओं के लिए भी हमें एक-एक Character के साथ प्रक्रिया करनी होगी।

उदाहरण के लिए मानलो कि हमारे पास दो Strings हैं, जिनमें क्रम से Ram व Shyam Store हैं। अब यदि हमें इन्हे जोडना हो, तो एक तीसरा Array लेना होगा और फिर पहले Array के सभी Character को क्रम से इस तीसरे Array में Store करना होगा फिर एक Space इस Array में जोडना होगा और उसके बाद अंत में दूसरे Array के Elements को Space के आगे से Input करना होगा।

C Programming Language in Hindi - BccFalna.com ये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook  C Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C Programming Language in Hindi | Page: 477 + 265 | Format: PDF

BUY NOW GET DEMO REVIEWS