Другим способом, который вы могли бы сделать это, было бы следующее:
#include <ctype.h> //needed for ispunct()
string onlyLetters(string str){
string retStr = "";
for(int i = 0; i < str.length(); i++){
if(!ispunct(str[i])){
retStr += str[i];
}
}
return retStr;
В результате создается новая строка вместо фактического стирания символов из старой строки, но ее немного легче обернуть ваша голова вокруг, чем использование некоторых более сложных встроенных функций.