C ++ प्रोग्राम रिकर्सन का उपयोग करके एक वाक्य को उल्टा करने के लिए

यह प्रोग्राम उपयोगकर्ता से एक वाक्य लेता है और पुनरावृत्ति का उपयोग करके उस वाक्य को उलट देता है। यह प्रोग्राम वाक्य को उलटने या वाक्य को संग्रहीत करने के लिए स्ट्रिंग का उपयोग नहीं करता है।

इस उदाहरण को समझने के लिए, आपको निम्नलिखित C ++ प्रोग्रामिंग विषयों का ज्ञान होना चाहिए:

  • C ++ फ़ंक्शंस
  • C ++ में उपयोगकर्ता-परिभाषित फ़ंक्शंस के प्रकार
  • सी ++ रिक्रिएशन
  • C ++ अगर, अगर… और नहीं तो नेस्टेड… और

उदाहरण: पुनरावृत्ति का उपयोग करके एक वाक्य को उल्टा।

 #include using namespace std; // function prototype void reverse(const string& a); int main() ( string str; cout << " Please enter a string " << endl; getline(cin, str); // function call reverse(str); return 0; ) // function definition void reverse(const string& str) ( // store the size of the string size_t numOfChars = str.size(); if(numOfChars == 1) ( cout << str << endl; ) else ( cout << str(numOfChars - 1); // function recursion reverse(str.substr(0, numOfChars - 1)); ) ) 

आउटपुट

 एक वाक्य दर्ज करें: margorp emosewa भयानक कार्यक्रम 

इस कार्यक्रम में, उपयोगकर्ता को एक स्ट्रिंग दर्ज करने के लिए कहा जाता है जो स्ट्रिंग ऑब्जेक्ट स्ट्रिंग में संग्रहीत होता है।

फिर, reverse()फ़ंक्शन को कहा जाता है जो एक पुनरावर्ती फ़ंक्शन है।

इस फ़ंक्शन के अंदर, हम numOfChars चर में इनपुट स्ट्रिंग के आकार को संग्रहीत करते हैं।

पहले फ़ंक्शन कॉल में, reverse()कोड के साथ स्ट्रिंग के अंतिम वर्ण को प्रिंट करता है:

 cout << str(numOfChars - 1);

याद रखें कि स्ट्रिंग्स वास्तव में कैरेक्टर एरे हैं , इसलिए स्ट्रिंग के प्रत्येक इंडिविजुअल कैरेक्टर को स्ट्रिंग अरेंज स्ट्रिंग () के इंडेक्स के रूप में दर्शाया जा सकता है।

अगली पंक्ति में, पुनरावर्ती कार्य कहा जाता है:

 reverse(str.substr(0, numOfChars - 1));

यहां, substr()दूसरे अंतिम वर्ण तक स्ट्रिंग देता है, जिसे फिर से reverse()फंक्शन में पास किया जाता है।

अगली reverse()कॉल में, दूसरा अंतिम वर्ण मुद्रित होता है क्योंकि स्ट्रिंग में अंतिम से एक कम वर्ण होता है। इसके बाद, पिछले से एक वर्ण फिर से स्ट्रिंग से कट-ऑफ है और reverse()फ़ंक्शन को पास किया गया है।

यह तब तक जाता है जब तक स्ट्रिंग की लंबाई 1 के बराबर हो जाती है, जब अंतिम चरित्र (या पहला चरित्र) मुद्रित होता है और लूप समाप्त होता है।

दिलचस्प लेख...