एक स्ट्रिंग एक एक-आयामी कैरेक्टर सरणी है जो नल कैरेक्टर द्वारा समाप्त होती है। एक स्ट्रिंग का उल्टा वही स्ट्रिंग विपरीत क्रम में होता है। उदाहरण के लिए।
मूल स्ट्रिंग: Apple is red उल्टी स्ट्रिंग: der si elppA
एक प्रोग्राम जो स्ट्रिंग के रूप में वाक्य को रिकर्सन का उपयोग करके उल्टा करता है, निम्नलिखित है।
उदाहरण
#include <iostream> using namespace std; void reverse(char *str) { if(*str == '\0') return; else { reverse(str+1); cout<<*str; } } int main() { char str[] = "C++ is fun"; cout<<"मूल स्ट्रिंग: "<<str<<endl; cout<<"उल्टी स्ट्रिंग: "; reverse(str); return 0; } आउटपुट
मूल स्ट्रिंग: C++ is fun उल्टी स्ट्रिंग: nuf si ++C
उपरोक्त प्रोग्राम में, reverse() फ़ंक्शन एक रिकर्सिव फ़ंक्शन है जो स्ट्रिंग को उल्टा करता है।
प्रारंभ में reverse() *str स्वीकार करता है जो एक पॉइंटर है जो स्ट्रिंग की शुरुआत की ओर इंगित करता है। यदि मान नल है, तो फ़ंक्शन लौटता है। यदि नहीं, तो फ़ंक्शन मान str+1 के साथ स्वयं को रिकर्सिवली कॉल करता है यानी स्ट्रिंग में अगला एलिमेंट। अंततः, जब str नल होता है, तो str के मानों को पीछे से आगे के लिए प्रिंट किया जाता है। तो, उल्टी स्ट्रिंग प्रिंट होती है। यह निम्नलिखित कोड स्निपेट द्वारा दिखाया गया है।
if(*str == '\0') return; else { reverse(str+1); cout<<*str; } main() फ़ंक्शन में, स्ट्रिंग आरंभ की जाती है। साथ ही, मूल स्ट्रिंग और उल्टी स्ट्रिंग प्रदर्शित की जाती है। यह निम्नानुसार दिखाया गया है:
char str[] = "C++ is fun"; cout<<"मूल स्ट्रिंग: "<<str<<endl; cout<<"उल्टी स्ट्रिंग: "; reverse(str);