>>transform ( answ.begin(), answ.end(), answ.begin(), ptr_fun(::tolower) );
The transform is wrong. You are invoking undefined behavior here.
You really should be doing
transform ( answ.begin(), answ.end(), back_inserter(answ), &tolower );
back_inserter can be found in <iterator>.