You are on page 1of 8

TECHCRASHCOURSE

(http://www.techcrashcourse.com/)
(//www.blogger.com/rearrange?blogID=8051473532172930360&widgetType=HTML&widgetId=HTML1&action=editWidget&sectionId=crosscol)

CProgramtoReverseaStringusingRecursion
Writeaprograminctoreverseastringusingrecursion.

Toreverseastring,wehavetoreversethesequencethecharactersofstring.Firstcharacter
oforiginalstringshouldbecomelastcharacterinreversedstring,secondcharacteroforiginal
stringshouldbecomesecondlastcharacterofreversedstringandsoon.
ForExample
Input:CProgramming
Output(ReversedString):gnimmargorPC
ToreverseastringoflengthNusingrecursion,wehavetoswaptheleftmostandrightmost
charactersofastringandthenrecursivelyreversetheinnersubstringfromindex1toN2.
Keeponrepeatingthisunlesssizeofsubstringisgreaterthanone.
AlgorithmtoreverseastringusingrecursionLetinputStringisastring(character
array)oflengthNandleftIndexandrightIndexaretwointegervariable.
InitializeleftIndexandrightIndextoindexoffirstcharacterandlastcharacterof
stringrespectively(leftIndex=0andrightIndex=N1)
Wewillfirstswapleftmost(inputString[leftIndex])characterand
rightmost(inputString[rightIndex])characterthenrecursivelyreversesubarrayfrom
indexleftIndex+1torightIndex1.
RecursionwillterminatewhenleftIndex>rightIndex.

Belowistherecursiveequationtoreverseastring.Swapfunctioninterchangesthepositions
ofleftmostandrightmostcharactersofsubstring.
reverse(string,leftIndex,rightIndex)=swap(string,leftIndex,rightIndex)+
reverse(string,leftIndex+1,rightIndex1)

Suppose,wewanttoreversestring"ORANGE"usingrecursion.Wewillfirstcallreverse
functionbypassingfollowingparameters
reverse("ORANGE",0,5).Thenreversefunctionwillswapthepositionsofcharacter
'O'(leftmostcharacter)and'E'(rightmostcharacter)andrecursivelycallsitselftoreverseinner
substringasreverse("ERANGO",1,4)andsoon.Recursionwillterminatewhensizeofsub
stringbecomeszero.

Cprogramtoreverseastringusingrecursion
Belowprogramusesauserdefinedrecursivefunctionnamed'reverseString'whichtakesa
pointertoastringandleftmostandrightmostindexofasubstringtobereversed.Itreverse
thesequenceofcharactersofthestringbetweenleftIndexandrightIndex(bothinclusive).First
ofall,reverseStringdoesinputvalidationthenitswapstheleftmostandrightmostcharacters
ofthesubstringpointedbyleftIndexandrightIndexusingalocalcharactervariable.Thenit
recursivelycallsitselftoreverseinnersubstringfromleftIndex+1torightIndex1.

/*
*CProgramtoreverseastringusingrecursion
*/
#include<stdio.h>
#include<string.h>
#include<conio.h>

char*reverseString(char*string,intleftIndex,intrightIndex);

intmain()
{
charinputArray[100];

printf("Enterastringtoreverse\n");
gets(inputArray);

reverseString(inputArray,0,strlen(inputArray)1);
printf("Reversedstring\n%s",inputArray);
getch();
return0;
}

/*
*Functiontoreverseanarray
*@inputinputArrayleftIndexandrightIndex
*/
char*reverseString(char*string,intleftIndex,intrightIndex){
charch;
if(NULL==string||leftIndex>rightIndex)
returnNULL;
/*
*SwapleftMostandrightMostcharacter,
*andrecursivelycallreverseStringforinnersubarray
*/
ch=string[leftIndex];
string[leftIndex]=string[rightIndex];
string[rightIndex]=ch;

reverseString(string,leftIndex+1,rightIndex1);
returnstring;
}

ProgramOutput
Enterastringtoreverse
TECHCRASHCOURSE
Reversedstring
ESRUOCHSARCHCET

RelatedTopics
Cprogramtoreverseastring(http://www.techcrashcourse.com/2014/10/cprogram
reversestring.html)
Cprogramforpalindromecheckusingrecursion
(http://www.techcrashcourse.com/2015/03/cprogramtocheckpalindromeusing
recursion.html)
Cprogramtofindpowerofanumberusingrecursion
(http://www.techcrashcourse.com/2015/03/cprogrampowerofnumberusing
recursion.html)
Cprogramtofindfactorialofanumberusingrecursion
(http://www.techcrashcourse.com/2015/03/cprogramtofindfactorialofnumberusing
recursion.html)
Cprogramtoreverseanumber(http://www.techcrashcourse.com/2014/10/cprogram
reversenumber.html)
Cprogramtocheckstringispalindrome(http://www.techcrashcourse.com/2014/10/c
programfindpalindromestring.html)
Cprogramtoreverseanarrayusingrecursion
(http://www.techcrashcourse.com/2015/03/cprogramtoreversearrayusing
recursion.html)
Cprogramtoreverseanumberusingrecursion
(http://www.techcrashcourse.com/2015/03/cprogramtoreversenumberusing
recursion.html)

ListofallCPrograms(http://www.techcrashcourse.com/2014/10/cprogramexamples.html)

Previous
(http://www.techcrashcourse.com/2015/03/c
programtocheckpalindromeusing
recursion.html)

Next
(http://www.techcrashcourse.com/2015/03/c
programsumofarrayusingrecursion.html)

PostedbyTechCrashCourse(https://www.blogger.com/profile/17353939485345171416)
(https://www.blogger.com/emailpost.g?blogID=8051473532172930360&postID=1923438912169407071)

NewerPost(http://www.techcrashcourse.com/2015/03/cprogramsumofarrayusingrecursion.html)
OlderPost(http://www.techcrashcourse.com/2015/03/cprogramtocheckpalindromeusing
recursion.html) Home(http://www.techcrashcourse.com/)
CTUTORIAL
CTutorial
(http://www.techcrashcourse.com/2015/05/c
programming
languagetutorial.html)
CHistory
(http://www.techcrashcourse.com/2015/05/c
programming
languagehistory.html)
CFirstProgram
(http://www.techcrashcourse.com/2015/05/c
programmingfirst
programhello
world.html)
Cprintfandscanf
(http://www.techcrashcourse.com/2015/05/c
programmingprintf
scanffunction.html)
CDataTypes
(http://www.techcrashcourse.com/2015/05/c
programming
languagedata
types.html)
CStorageClass
(http://www.techcrashcourse.com/2015/06/c
programmingstorage
classes.html)
COperators
(http://www.techcrashcourse.com/2015/05/c
programming
language
operators.html)
CBitwiseOperator
(http://www.techcrashcourse.com/2015/05/c
programmingbitwise
operators.html)
CTypeCasting
(http://www.techcrashcourse.com/2015/06/c
programmingdata
typecasting.html)
CIfStatement
(http://www.techcrashcourse.com/2015/05/c
programmingif
statement.html)
CSwitchStatement
(http://www.techcrashcourse.com/2015/05/c
programmingswitch
statement.html)
CIfElseStatement
(http://www.techcrashcourse.com/2015/05/c
programmingifelse
statement.html)
CforLoop
(http://www.techcrashcourse.com/2015/05/c
programmingfor
loop.html)

CwhileLoop
(http://www.techcrashcourse.com/2015/05/c
programmingwhile
loop.html)
CdowhileLoop
(http://www.techcrashcourse.com/2015/05/c
programmingdowhile
loop.html)
CbreakStatement
(http://www.techcrashcourse.com/2015/05/c
programmingbreak
statement.html)
CFunction
Declaration
(http://www.techcrashcourse.com/2015/05/c
programmingfunction
declaration.html)
CFunctionCalling
(http://www.techcrashcourse.com/2015/05/c
programmingfunction
calling.html)
CVariablesScope
(http://www.techcrashcourse.com/2015/05/c
programming
variablesscope
rules.html)
CArrays
(http://www.techcrashcourse.com/2015/05/c
programming
arrays.html)
CMultiDimensional
Arrays
(http://www.techcrashcourse.com/2015/05/c
programmingmulti
dimensional
arrays.html)
CStrings
(http://www.techcrashcourse.com/2015/05/c
programming
strings.html)
CStructures
(http://www.techcrashcourse.com/2015/06/c
programming
structure.html)
CPointers
(http://www.techcrashcourse.com/2015/08/c
programming
pointers.html)
CPointerArithmetic
(http://www.techcrashcourse.com/2015/08/c
programmingpointer
arithmetic.html)
CPassingPointers
(http://www.techcrashcourse.com/2015/08/c
programmingpassing
pointerfunction.html)
CPointertoaPointer
(http://www.techcrashcourse.com/2015/08/c
programmingpointer
topointer.html)
CArrayofPointers
(http://www.techcrashcourse.com/2015/08/c
programmingarrayof
pointers.html)
CPointersto
Structure
(http://www.techcrashcourse.com/2015/06/c
programmingpointer
tostructure.html)
CNestingof
Structures
(http://www.techcrashcourse.com/2015/06/c
programmingnesting

ofstructures.html)
CUnion
(http://www.techcrashcourse.com/2015/06/c
programming
union.html)
CTypedef
(http://www.techcrashcourse.com/2015/06/c
programmingtypedef
keyword.html)
CFileHandling
(http://www.techcrashcourse.com/2015/06/c
programmingfile
handlinginput
output.html)
CPreprocessor
Directives
(http://www.techcrashcourse.com/2015/06/c
programming
preprocessor
directives.html)
CGRAPHICS
CGraphicsTutorial
(http://www.techcrashcourse.com/2015/08/c
graphicsprogramming
tutorial.html)
DrawaCircle
(http://www.techcrashcourse.com/2015/08/c
programdrawcircle
graphics.html)
DrawBarGraph
(http://www.techcrashcourse.com/2015/08/c
programdrawbar
graphusing
graphics.html)
Draw3DBarGraph
(http://www.techcrashcourse.com/2015/08/c
programdraw3dbar
graphusing
graphics.html)
DrawSineWave
(http://www.techcrashcourse.com/2015/08/c
programdrawsine
graphwave
graphics.html)
DrawPieChart
(http://www.techcrashcourse.com/2015/08/c
programdrawpie
chartusing
graphics.html)
MakeaDigitalClock
(http://www.techcrashcourse.com/2015/08/c
programmakedigital
clockusing
graphics.html)
BouncingBall
Animation
(http://www.techcrashcourse.com/2015/08/c
programbouncingball
animation
graphics.html)
MovingCarAnimation
(http://www.techcrashcourse.com/2015/08/c
graphicsprogram
movingcar
animation.html)
DesignPattern
ObserverPattern
(http://www.techcrashcourse.com/2015/10/observer
designpatternin
java.html)
StatePattern
(http://www.techcrashcourse.com/2015/10/state

designpatternin
java.html)
StrategyPattern
(http://www.techcrashcourse.com/2015/10/strategy
designpatternin
java.html)
FilterPattern
(http://www.techcrashcourse.com/2015/10/filter
designpatternin
java.html)
CompositePattern
(http://www.techcrashcourse.com/2015/10/composite
designpatternin
java.html)
DecoratorPattern
(http://www.techcrashcourse.com/2015/10/decorator
designpatternin
java.html)
MementoPattern
(http://www.techcrashcourse.com/2015/10/memento
designpatternin
java.html)
FacadePattern
(http://www.techcrashcourse.com/2015/10/facade
designpatternin
java.html)
BridgePattern
(http://www.techcrashcourse.com/2015/10/bridge
designpattern.html)
(//www.blogger.com/rearrange?
blogID=8051473532172930360&widgetType=HTML&widgetId=HTML7&action=editWidget&sectionId=sidebar
left1)
(//www.blogger.com/rearrange?
blogID=8051473532172930360&widgetType=HTML&widgetId=HTML8&action=editWidget&sectionId=sidebar
left1)
(//www.blogger.com/rearrange?
blogID=8051473532172930360&widgetType=HTML&widgetId=HTML3&action=editWidget&sectionId=sidebar
right1)
Cprogramtocheckstringispalindrome
(http://www.techcrashcourse.com/2014/10/c
programfindpalindromestring.html)
Cprogramforfibonacciseriesusingrecursion
(http://www.techcrashcourse.com/2015/03/c
programfibonacciseriesusingrecursion.html)
Cprogramtocheckyearisleapyearornot
(http://www.techcrashcourse.com/2014/10/c
programcheckleapyear.html)
Cprogramtogeneraterandomnumbers
(http://www.techcrashcourse.com/2015/08/c
programgeneraterandomnumbersrand.html)
Cprogramtocalculatepowerofanumber
(http://www.techcrashcourse.com/2014/10/c
programcalculatepowerofnumber.html)
Cprogramtodeleteanelementfromarray
(http://www.techcrashcourse.com/2015/03/c
programtodeleteelementfromanarray.html)
Cprogrammingdatatypes
(http://www.techcrashcourse.com/2015/05/c
programminglanguagedatatypes.html)
Cprogrammingstructure
(http://www.techcrashcourse.com/2015/06/c
programmingstructure.html)
Cprogrammingswitchstatement
(http://www.techcrashcourse.com/2015/05/c
programmingswitchstatement.html)
FunctiondefinitioninC
(http://www.techcrashcourse.com/2015/05/c
programmingfunctiondefinition.html)
CProgrammingHeaderFiles
(http://www.techcrashcourse.com/2015/06/c

programmingheaderfiles.html)
CGraphics
(http://www.techcrashcourse.com/2015/08/c
graphicsprogrammingtutorial.html)
Cprogramtofindhcfandlcmoftwonumbers
(http://www.techcrashcourse.com/2014/10/c
programfindhcfandlcm.html)
Cprogrammingswitchstatement
(http://www.techcrashcourse.com/2015/05/c
programmingswitchstatement.html)
Cprogramtosortcharactersofastring
(http://www.techcrashcourse.com/2014/11/c
programsortcharactersofstring.html)
CProgrammingExamples
(http://www.techcrashcourse.com/2014/10/c
programexamples.html)
Cprogramtomakecalculatorusingswitch
(http://www.techcrashcourse.com/2015/08/c
programmakesimplecalculatorswitchcase.html)
Cprogramtoconvertdecimaltobinary
(http://www.techcrashcourse.com/2015/08/c
programtoconvertdecimalnumberbinary.html)
Cprogrammingmultidimensionalarrays
(http://www.techcrashcourse.com/2015/05/c
programmingmultidimensionalarrays.html)
Cprogrammingloopsandjumps
(http://www.techcrashcourse.com/2015/05/c
programmingloops.html)Cprogrammingtutorialsfor
beginners
(http://www.techcrashcourse.com/2015/05/c
programminglanguagetutorial.html)
(//www.blogger.com/rearrange?
blogID=8051473532172930360&widgetType=HTML&widgetId=HTML5&action=editWidget&sectionId=sidebar
right1)

PopularPosts
CProgramtoPrintTriangleandPyramid
patternsofStar(*)CharacterUsingLoop
(http://www.techcrashcourse.com/2015/08/c
programprinttrianglepyramidpattern
star.html)
Writeaprograminctoprintpyramidand
trianglepatternsusingloopThisProgramfirst
takesthenumbersofrowsinpatternand
then...
CProgramtoConvertDecimalNumbersto
BinaryNumbers
(http://www.techcrashcourse.com/2015/08/c
programtoconvertdecimalnumber
binary.html)
Writeaprograminctoconvertadecimal
number(base10)tobinarynumber(base2)
Writeaprograminctoconvertabinary
number(base2)...
CProgramtoPrintFibonacciSeriesusing
Recursion
(http://www.techcrashcourse.com/2015/03/c
programfibonacciseriesusingrecursion.html)
Writeaprograminctoprintfibonacciseries
usingrecursionFibonacciseriesarethe
numbersinthefollowingintegersequence0,...
CProgramtoPrintAllPrimeNumbersbetween
1toN
(http://www.techcrashcourse.com/2015/11/c
programtoprintallprimenumbersbetween
1toN.html)
WriteaCprogramtoprintallprimenumbers
between1toNusingforloop.WapinCtoprint
primenumbersbetween1to100.Required
K...
CGraphicsProgrammingTutorial
(http://www.techcrashcourse.com/2015/08/c
graphicsprogrammingtutorial.html)

ThisCGraphicstutorialsisforthosewhowant
tolearnfundamentalsofGraphics
programming,withoutanypriorknowledgeof
graphics.T...
CProgramtoDrawaCircleUsingCGraphics
(http://www.techcrashcourse.com/2015/08/c
programdrawcirclegraphics.html)
WriteaprograminCtodrawacircleonscreen
usinggraphics.hheaderfileInthisprogram,
wewilldrawacircleonscreenhavingce...
CProgramforMovingCarAnimationUsingC
Graphics
(http://www.techcrashcourse.com/2015/08/c
graphicsprogrammovingcaranimation.html)
WriteaprograminCformovingcaranimation
usinggraphics.hheaderfileInthisprogram,
wewillfirstdrawacarandcolorit.Ine...
CProgramtoPrintOddNumbersBetween1to
100usingForandWhileLoop
(http://www.techcrashcourse.com/2015/11/c
programtoprintalloddnumbersbetween1
to100usingloop.html)
WriteaCprogramtoprintoddnumbers
between1to100usingforloop.WriteaC
programtoprintalloddnumbersbetween1to
Nusingwh...
CProgramtoPrintEvenNumbersBetween1
to100usingForandWhileLoop
(http://www.techcrashcourse.com/2015/11/c
programtoprintallevennumbersbetween1
to100usingloop.html)
WriteaCprogramtoprintevennumbers
between1to100usingforloop.WriteaC
programtoprintallevennumbersbetween1
toNusing...
(//www.blogger.com/rearrange?
blogID=8051473532172930360&widgetType=PopularPosts&widgetId=PopularPosts1&action=editWidget&sectionId=sidebar
right1)
(//www.blogger.com/rearrange?
blogID=8051473532172930360&widgetType=HTML&widgetId=HTML2&action=editWidget&sectionId=sidebar
right1)

Home(http://www.techcrashcourse.com)|Contactus(http://www.techcrashcourse.com/p/contact.html)|About(http://www.techcrashcourse.com/p/about.html)
(//www.blogger.com/rearrange?blogID=8051473532172930360&widgetType=HTML&widgetId=HTML4&action=editWidget&sectionId=footer1)
(//www.blogger.com/rearrange?blogID=8051473532172930360&widgetType=HTML&widgetId=HTML9&action=editWidget&sectionId=footer1)
(//www.blogger.com/rearrange?
(//www.blogger.com/rearrange?
blogID=8051473532172930360&widgetType=HTML&widgetId=HTML10&action=editWidget&sectionId=footer blogID=8051473532172930360&widgetType=HTML&widgetId=HTM
21)
22)
Copyrightbytechcrashcourse.com|Allrightsreserved|.PoweredbyBlogger(https://www.blogger.com).
(//www.blogger.com/rearrange?blogID=8051473532172930360&widgetType=Attribution&widgetId=Attribution1&action=editWidget&sectionId=footer3)

You might also like