Я знаю, что эта проблема часто возникает, но я не смог найти кусок кода, который работал бы для меня.
Я пытаюсь удалить все знаки препинания из входящей строки, используя методы find_first_not_of и find_last_not_of в библиотеке строк:
//
//strip punctuation characters from string
//
void stripPunctuation(string &temp)
{
string alpha = "abcdefghijklmnopqrstuvwxyz";
size_t bFound = temp.find_first_not_of(alpha);
size_t eFound = temp.find_last_not_of(alpha);
if(bFound != string::npos)
temp.erase(temp.begin());
if(eFound != string::npos)
temp.erase(temp.end());
}
По сути, я хочу удалить что-нибудь в начале строки, которое не является алфавитным, и что-либо в конце строки, которое не является алфавитным. Когда эта функция вызывается, это приводит к ошибке сегментации. Я не уверен, куда мне следует проходить bFound и eFound?