Sub-String Insertion Algorithm using C Program – हम जानते हैं कि कोई String एक 1-D Array में Store होती है इसलिए हम किसी String के साथ भी वे सभी Operations कर सकते हैं जो किसी Integer प्रकार के मानों के Array के साथ करते हैं। यानी हम किसी String में नई Sub String को Insert कर सकते हैं, String में किसी Sub String को Delete कर सकते हैं, किसी String को Search कर सकते हैं, आदि।
आज हम जो भी Word Processors जैसे कि MS-Word, Open – Office आदि Use करते हैं, उनमें Strings पर विभिन्न प्रकार के Operations किए जा सकते हैं। जब हमें किसी String में कोई अन्य Sub String Insert करनी होती है, तो हमें सबसे पहले उस Memory Location पर जाना पडता है, जहां String को Insert करना है।
हम जिस String के 1-D Array में कोई Sub String Insert करना चाहते हैं उस String के Array में Space होना चाहिए। यदि Target String के Array में Space नहीं होगा, तो हम यदि कोई Source String उस Array में Insert करेंगे, तो Target String के Last के Characters Delete हो जाएंगे।
हमें Insert की जाने वाली Sub String की Length का भी पता होना चाहिए, ताकि हम जिस स्थान पर String को Insert करना चाहते हैं, उस स्थान से Sub String की Length के बराबर Space तक जो भी Characters Target Array में हैं, उन्हें उतने ही Characters Right में Shift कर सकें।
इस जानकारी के आधार पर हम निम्नानुसार एक Algorithm लिख सकते हैं जो किसी String में Sub String Insert के Steps को प्रदर्शित करेगा।
[code] Algorithm Here TARRAY[SIZE] is an Array where SIZE is the size of the Array. SARRAY[N] is an Array where N is the Size of the Array. POS is the Target Position of the Sub String in the Source String. LENGTH is the Length of the Sub String. X and I are the Variables of the Loop. START SET X = 0 REPEATE FOR I = SIZE-1 TO POS TARRAY[I] = SARRAY[I - LENGTH] STEP I = I – 1 [Right Shift Data Elements From Position I To I – LENGTH Position ] [End of the Loop] REPEATE FOR I = POS to POS+LENGTH-1 STEP I = I + 1 TARRAY[I] = SARRAY[X] SET X = S + 1 [End of the Loop] END [/code]
इस Algorithm के आधार पर हम निम्नानुसार एक Program बना सकते हैं जिसमें किसी String में एक अन्य Sub String को Insert किया गया है। Program निम्नानुसार है-
[code] Program #include <stdio.h> #include <string.h> #define SIZE 20 main() { char string[SIZE], substring[10], pos; int i, x=0, Length; clrscr(); printf("Enter Position"); scanf("%d", &pos); fflush(stdin); printf("\nEnter String"); gets(string); printf("Enter Sub String"); gets(substring); Length = strlen(substring); for(i=SIZE-1; i>(int)pos; i--) { string[i] = string[i-Length]; } for(i=pos; i<=pos+Length-1; i++) { string[i] = substring[x++]; } printf("String is %s", string); getch(); } [/code]
इस Program को Execute करने पर इसका Output निम्नानुसार प्राप्त होता है-
[code] Output Enter Position 6 Enter String Rajasthan Enter Sub String Pali String is RajastPalihan [/code]
हम देख सकते हैं कि किसी Integer Array में किसी मान को Insert करना व किसी String Array में Sub String Insert करना दोनों में कोई विशेष अन्तर नहीं है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Data Structure and Algorithms in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Data Structure and Algorithms in Hindi | Page: 433 | Format: PDF