Running out of memory when using many if statements

  if (letter_to_get == 'a')
  {
    this->copy_letter(letter_a);
  }

As you have noted there are numerous sections of code like this. It seems to me that you could use the ASCII value of letter_to_get as an index into an array of characters to remove the need for multiple tests.