What is this supposed to do? When you increment 'word', you move one std::string over in memory, pointing to random garbage. If you want a character use .at() or the array subscript operator [] on the string.
The other problem with the call is that you take a string*, but you are passing a char* which is only convertible to string, not string*.
Then you are using the wrong pointer. Besides, you code shouldn't even compile because you are passing a const char* when getLetterAt() expects a string*.
Therefore, change the function to constchar* getLetterAt(constchar *word, int letter) and you should be good to go. Oh, and don't return *(word), just return word.
All string literals in the source code, like "Banana" over there occupy memory, but you did not allocate that and therefore you are not considered to be the owner of it. Therefore you cannot change it. This is why it is const(ant).
Since you are returning a pointer to the 3rd character, that is still read-only memory for you, so you also need to return const char*.