以下のコードは、文字列を受け取り、英語のアルファベットから小文字のみを出力したいと考えています。
string simplifyString(string word)
{
word.erase(remove_if(word.begin(), word.end(), [](char letter){return !isalpha(letter);}));
transform(word.begin(), word.end(), word.begin(), tolower);
return word;
}
int main()
{
string s = "a.b.c.d.e.f.g.h.";
cout << simplifyString(s) << endl;;
return 0;
}
出力は次のとおりです。 abcdefgh.fgh
したがって、コードは機能し、その後機能しなくなります。一体何が起こっているのですか?