Jump to content

Help with recursion { recursive helper function }

- - - - -

This topic has been archived. This means that you cannot reply to this topic.
3 replies to this topic

#1
mibit

mibit

    Newbie

  • Members
  • Pip
  • 7 posts
Can you please help me with the source code solving this task under C++/G++ (linux) or dev C++ (windows)

Posted Image

Below you can see a hint for solving Exercise P14.1 but I need to write the source for Exercise P14.1 Please help me

horstmann.com/bigcpp/solutions/ch14/ExP14_1.cpp
#include <string>

using namespace std;

/**
   Reverse a sentence.
*/
class Sentence
{
public:
   /**
      Creates a Sentence object.
      @param aPhrase a sentence to reverse.
   */
   Sentence(string aPhrase);
   
   /**
      Reverses this sentence.
      @return the reversed sentence
   */
   string reverse();
     
private:
   string phrase;
};

Sentence::Sentence(string aPhrase)   
{
   phrase = aPhrase;
}

  
string Sentence::reverse()
{
   if (phrase != "")
   {
      string c = phrase.substr(0, 1);
      string rest = phrase.substr(1, phrase.length() - 1);
      Sentence tailSentence(rest);
      phrase = tailSentence.reverse() + c;
   }
   return phrase;
}

int main()
{
   Sentence greeting("Hello!");
   cout << greeting.reverse() << "\n";
   return 0;
}


Attached Files



#2
mibit

mibit

    Newbie

  • Members
  • Pip
  • 7 posts
thanks in advance

#3
WingedPanther

WingedPanther

    A spammer's worst nightmare

  • Moderators
  • 16,831 posts
It looks like you already have the code there... Perhaps I'm missing something.
Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

#4
mibit

mibit

    Newbie

  • Members
  • Pip
  • 7 posts
See what I did Should I change anything ?
#include <string>

#include <iostream>

using namespace std;


/**

   Reverse a sentence.

*/

class Sentence

{

public:

   /**

      Creates a Sentence object.

      @param aPhrase a sentence to reverse.

   */

   Sentence(string aPhrase);

   

   /**

      Reverses this sentence.

      @return the reversed sentence

   */

   string reverse();

   string reverseSubstring(int beginning,int end);

     

private:

   string phrase;

};


Sentence::Sentence(string aPhrase)   

{

   phrase = aPhrase;

}


  

string Sentence::reverse()

{

   if (phrase != "")

   {

      string c = phrase.substr(0, 1);

      string rest = phrase.substr(1, phrase.length() - 1);

      Sentence tailSentence(rest);

      phrase = tailSentence.reverse() + c;

   }

   return phrase;

}

string Sentence::reverseSubstring(int beginning,int end)

{

   if (phrase != "")

   {

      string sBegining = phrase.substr(0, beginning - 1);

      string sEnd = phrase.substr(end,phrase.length()-1);

      Sentence toReverse(phrase.substr(beginning -1,end - 1));

      toReverse.reverse();

      phrase = sBegining + toReverse.phrase + sEnd;

   }

   return phrase;

}


int main()

{

   Sentence greeting("Hello!");

   //cout << greeting.reverse() << "\n";

   cout << greeting.reverseSubstring(2,4) << "\n";

   return 0;

}