Be careful with types. For example, your get_last_word function is meant to return a string but in your error case you return 0. If you want to return an empty string, use `return "";` I'm guessing that you might be working under restrictions about what library functions you're allowed to use here, but you don't say so. If you're allowed to use anything in the standard library, have a look at `std::string::find_last_of` as a replacement for your first loop. Similarly, look at `std::string::substr` as a replacement for your second loop. Building a string one character at a time is generally discouraged because it's quite inefficient. Something like `substr` will be more efficient because it can, for example, allocate all the memory needed by your string in one go.