सी में एक स्ट्रिंग को कैसे उलटें

How Reverse String C



स्ट्रिंग कोडिंग में, स्ट्रिंग रिवर्सल एक महत्वपूर्ण विषय है। एक स्ट्रिंग को उलटने के लिए भी कई तरीके हैं, जिनमें से प्रत्येक का एक अलग तर्क है। यह आलेख आपको दिखाएगा कि किसी पूर्व निर्धारित फ़ंक्शन के साथ और उसके बिना कई अलग-अलग दृष्टिकोणों और तर्क का उपयोग करने के लिए स्ट्रिंग को ठीक से कैसे उलटना है। जब भी किसी विशिष्ट विशिष्ट इनपुट स्ट्रिंग में एक स्ट्रिंग तकनीक का उत्क्रमण लागू किया जाता है, तो उपभोक्ता द्वारा एक विशिष्ट क्रम में आपूर्ति किए जाने वाले पाठ को पूरी तरह से उलट दिया जाएगा। नीचे दिए गए उदाहरण में, सी के साथ एक स्ट्रिंग को उलटने के अन्य विकल्पों को नियोजित किया गया है।

इस गाइड को लागू करते समय, हम वर्चुअल बॉक्स पर कॉन्फ़िगर किए गए उबंटू 20.04 लिनक्स सिस्टम पर काम कर रहे हैं। Linux सिस्टम पर काम करते समय, हम अपने अधिकांश इंस्टालेशन और क्वेरी टर्मिनल शेल पर करते थे। इसलिए, टर्मिनल शेल को शॉर्टकट Ctrl+Alt+T द्वारा खोलें या इसे उबंटू डेस्कटॉप के गतिविधि क्षेत्र के तहत एक एप्लिकेशन सर्च बार के माध्यम से खोजें। उपयुक्त अद्यतन क्वेरी के माध्यम से पहले अपने सिस्टम को अपडेट करना आवश्यक है। यह अपडेट चलाने के लिए आपसे वर्तमान उपयोगकर्ता पासवर्ड मांगेगा। इसलिए, एक पासवर्ड जोड़ें और एंटर बटन दबाएं।







$ सुडो उपयुक्त अद्यतन



जैसा कि हम उबंटू 20.04 सिस्टम में स्ट्रिंग्स को उलटने की अवधारणा को विस्तृत करने के लिए सी प्रोग्रामिंग भाषा का उपयोग कर रहे हैं, उनके उबंटू सिस्टम पर एक सी कंपाइलर स्थापित होना चाहिए। इसलिए नीचे दी गई क्वेरी के माध्यम से अपने सिस्टम पर जीसीसी कंपाइलर स्थापित करना सुनिश्चित करें।



$ सुडो उपयुक्त जीसीसी स्थापित करें

उदाहरण 01: लूप के लिए उपयोग करना

जीसीसी कंपाइलर की स्थापना और कॉन्फ़िगरेशन और उपयुक्त पैकेज को अपडेट करने के बाद, यह एक नई फाइल बनाने के लिए बदल जाता है। यह फाइल सी टाइप की होनी चाहिए; इसलिए, नीचे दी गई फ़ाइल new.c बनाने के लिए टच कमांड का उपयोग करें। रिवर्स स्ट्रिंग प्रोग्राम के कार्यान्वयन के दौरान अब से इस फ़ाइल का उपयोग हमारे कोड में किया जाएगा।





$ नया स्पर्श करें।सी

अब आप इस फाइल को एक नैनो संपादक द्वारा संपादन या कोडिंग के लिए खोल सकते हैं जो आपके उबंटू 20.04 लिनक्स सिस्टम में अंतर्निहित है। इसलिए, ऐसा करने के लिए अपने शेल में नीचे दिए गए निर्देशों का प्रयास करें।



$ नैनो नया।सी

नई बनाई गई सी-टाइप फ़ाइल नई उबंटू 20.04 सिस्टम के जीएनयू नैनो संपादक में खोली गई है। आपको इसमें एक C स्क्रिप्ट लिखनी है, जैसा कि नीचे स्क्रीनशॉट इमेज में दिखाया गया है। आइए हम आपकी बेहतर समझ के लिए इस कोड के बारे में विस्तार से बताते हैं। एक कोड की शुरुआत में, हमने दो पुस्तकालयों को शामिल किया है। लाइब्रेरी stdio.h का उपयोग इनपुट लेने और आउटपुट प्रदर्शित करने के लिए किया गया है, और अन्य लाइब्रेरी string.h का उपयोग हमारे कोड में सभी प्रकार के स्ट्रिंग्स का उपयोग करने के लिए किया गया है। एक स्ट्रिंग को उलटने का सारा काम एक सी कोड की मुख्य () विधि में किया जाएगा। हमने एक वर्ण प्रकार की स्ट्रिंग घोषित की है जिसका आकार 50 है। इसका मतलब है कि इस कोड में 50 से अधिक वर्णों वाली स्ट्रिंग का मनोरंजन नहीं किया जा सकता है। उसके बाद, हमने दो पूर्णांक-प्रकार के चर घोषित किए हैं। चर l का उपयोग स्ट्रिंग str की लंबाई एकत्र करने के लिए किया गया है और चर I को लूप के लिए प्रारंभकर्ता के रूप में उपयोग किया जाएगा। फिर हमने शेल एंटर स्ट्रिंग पर एक टेक्स्ट प्रिंट करने के लिए एक प्रिंटफ स्टेटमेंट का उपयोग किया है, जो एक उपयोगकर्ता को एक स्ट्रिंग वेरिएबल में एक मान जोड़ने के लिए कहता है। स्कैनफ () विधि का उपयोग उपयोगकर्ता को रन टाइम पर इनपुट करने और उस मान को एक स्ट्रिंग स्ट्र में सहेजने के लिए किया गया है। फ़ंक्शन strlen () का उपयोग एक स्ट्रिंग str की लंबाई की जांच करने के लिए किया गया है जिसे उपयोगकर्ता द्वारा रन टाइम पर जोड़ा गया है और इसे एक चर l 'में सहेजा गया है। फिर हमने स्ट्रिंग स्ट्र को उलटने के लिए लूप के लिए इनिशियलाइज़ किया। आप देख सकते हैं कि प्रारंभकर्ता I' एक स्ट्रिंग की दिशा को उलटने के लिए एक चर l से मान ले रहा है। फिर यह एक स्ट्रिंग स्ट्र के वर्णों को एक-एक करके उलट देता है। अंत में, मुख्य विधि समाप्त कर दी गई है। इस फ़ाइल को Ctrl+S का उपयोग करके सहेजें और Ctrl+X के माध्यम से इसे छोड़ दें।

अब कोड को संकलित करने और उसके आउटपुट की जांच करने का समय आ गया है। इसलिए, संकलन एक फ़ाइल new.c के नाम के साथ नीचे बताई गई gcc क्वेरी द्वारा किया गया है।

$ जीसीसी नया।सी

जैसे ही संकलन सफल होता है, इसका मतलब है कि हमारे कोड में कोई त्रुटि नहीं है। आइए हमारी फ़ाइल को शेल में a.out क्वेरी द्वारा निष्पादित करें:

$./प्रति।बाहर

निष्पादन प्रक्रिया उपयोगकर्ता को एक स्ट्रिंग जोड़ने के लिए कहेगी। हमने आई-एम-अक्सा-यासीन को जोड़ा है और एंटर दबाया है। आप देख सकते हैं कि यह निम्न पंक्ति में एक स्ट्रिंग के विपरीत देता है।

उदाहरण 02: स्वैपिंग का उपयोग करना

इस उदाहरण में, हम एक स्ट्रिंग के क्रम को उलटने के लिए स्वैपिंग विधि का उपयोग करेंगे। इसलिए एक बार फिर से नैनो संपादक का उपयोग करके फ़ाइल को new.c खोलें:

$ नैनो नया।सी

अब फ़ाइल को GNU नैनो संपादक में खोल दिया गया है; हमें स्क्रीनशॉट में नीचे दिखाई गई स्क्रिप्ट के साथ कोड फ़ाइल को अपडेट करने की आवश्यकता है। हमने सबसे पहले एक कीवर्ड #include का उपयोग करके अपने कोड में मानक इनपुट और आउटपुट हेडर फ़ाइल शामिल की है। हमने स्वैपिंग तकनीक के उपयोग के अनुसार एक विधि रिवर्स () को परिभाषित किया है। हमने तीन इंटीजर टाइप वेरिएबल नए, I और स्वैप को इनिशियलाइज़ किया है। लूप के लिए पहले का उपयोग यह जांचने के लिए किया जाता है कि स्ट्रिंग s खाली है या नहीं। अगले लूप के लिए पुनरावृत्ति के लिए उपयोग किया जाता है, और इसके शरीर में, हमने नए और स्वैप चर का उपयोग करके मूल्यों की अदला-बदली की है। यह ध्यान देने योग्य है कि n-लंबाई वाली स्ट्रिंग को उलटने में केवल n/2 राउंड लगते हैं। एक बार स्ट्रिंग्स की अदला-बदली करने के बाद, आपको उल्टे स्ट्रिंग को दिखाने के लिए फिर से लूप करना होगा, जिसे हम अपने एप्लिकेशन के भीतर लूप के लिए तीसरे का उपयोग करके करते हैं। फ़ंक्शन रिवर्स () को मुख्य कार्यक्रम के अंदर से बुलाया जाना चाहिए। आपने बताया है कि आपका सॉफ्टवेयर मुख्य () के संदर्भ में प्रिंटफ के साथ क्या करता है। उसके बाद, आपने उपयोगकर्ता इनपुट प्राप्त करने के लिए स्कैनफ () का उपयोग किया और रिवर्स () विधि को लागू किया। अब Ctrl+S का उपयोग करके फ़ाइल को फिर से सहेजें और नैनो संपादक को Ctrl+X शॉर्टकट द्वारा छोड़ दें और टर्मिनल शेल पर वापस आ जाएं।

कोड को पहले नीचे दिए गए gcc क्वेरी द्वारा संकलित करें।

$ जीसीसी नया।सी

अब उसी ./a.out निर्देश का उपयोग करके कोड फ़ाइल निष्पादित करें।

$./प्रति।बाहर

यह आपको स्ट्रिंग मान दर्ज करने के लिए कहेगा। हमने अक्सायासीन को जोड़ा है और उसका उल्टा मिला है।

उदाहरण 03: रिकर्सन का उपयोग करना

इस उदाहरण में, हम उपयोगकर्ता द्वारा जोड़े गए स्ट्रिंग को उलटने के लिए रिकर्सन का उपयोग करेंगे। इसलिए फाइल को दोबारा खोलें।

$ नैनो नया।सी

यह प्रोग्राम प्रिंट करता है एक वाक्य दर्ज करें: एक रिवर्स () विधि का उपयोग किया जाता है। एक उपयोगकर्ता द्वारा इनपुट किया गया प्रारंभिक अक्षर इस विधि के माध्यम से c में सहेजा जाता है। रिवर्स () को फिर से निष्पादित किया जाता है यदि तर्क n (न्यूलाइन) के अलावा कुछ और है। यह प्रक्रिया तब तक जारी रहती है जब तक उपयोगकर्ता एंटर की दबाता है। जब भी उपयोगकर्ता एंटर दबाता है, तो रिवर्स () विधि टेक्स्ट को उल्टे क्रम में प्रिंट करती है। फ़ाइल को सहेजें और बंद करें।

पहले कोड संकलित करें और फिर पिछले आदेशों का उपयोग करके इसे निम्नानुसार चलाएँ:

$ जीसीसी नया।सी

$./प्रति।बाहर

आप देख सकते हैं कि यह एक उपयोगकर्ता से पूरे स्ट्रिंग वाक्य के रूप में इनपुट लेता है और फिर उस वाक्य के क्रम को उलट देता है।

निष्कर्ष:

अंत में, हमने अलग-अलग तरीकों से एक स्ट्रिंग प्रकार के इनपुट को उलटने के बारे में विस्तार से बताने के लिए तीन उदाहरण दिए हैं, उदाहरण के लिए, लूप का उपयोग करना, रिकर्सन का उपयोग करना और स्वैप का उपयोग करना।