I need to right a recursion program to reverse a string
the condition is
it should be only line
tht line code should be of returning the value
|
Go4Expert Founder
|
![]() |
| 26Sep2006,14:54 | #2 |
|
Really interesting
Code:
#include <iostream.h>
#include <string.h>
void RevStr(char *inArr, char *outArr,int start,int cLen)
{
((*(outArr+start) = inArr[cLen-1]) && (cLen > 0))?RevStr(inArr, outArr, start+1, cLen-1):0;
}
int main()
{
char * ptr = "Go4Expert";
char *outptr = 0;
outptr = new char[strlen(ptr) + 1];
RevStr(ptr, outptr, 0, strlen(ptr));
cout<<outptr;
return 0;
}
|
|
Go4Expert Member
|
|
| 26Sep2006,14:58 | #3 |
|
I mean tht one line code should be of returning type.................I am not able to figure it out
|
|
Go4Expert Founder
|
![]() |
| 26Sep2006,15:26 | #4 |
|
This one line is of returning type but as the function does not need to return anything and so it does not have a return statement.
Code:
((*(outArr+start) = inArr[cLen-1]) && (cLen > 0))?RevStr(inArr, outArr, start+1, cLen-1):0; |
|
Go4Expert Member
|
|
| 26Sep2006,16:21 | #5 |
|
k thanx
|
|
Go4Expert Founder
|
![]() |
| 26Sep2006,16:39 | #6 |
|
Quote:
Originally Posted by kingo Also with the return statement heres the code. Code:
#include <iostream.h>
#include <string.h>
int RevStr(char *inArr, char *outArr,int start,int cLen)
{
return(((*(outArr+start) = inArr[cLen-1]) && (cLen > 0))?RevStr(inArr, outArr, start+1, cLen-1):0);
}
int main()
{
char * ptr = "Go4Expert";
char *outptr = 0;
outptr = new char[strlen(ptr) + 1];
RevStr(ptr, outptr, 0, strlen(ptr));
cout<<outptr;
return 0;
}
|

