文字列を小文字に変換するためにSTL関数for_eachを使用しようとしていますが、何が間違っているのかわかりません。tolower()でfor_eachを使用する
clean = for_each(temp.begin(), temp.end(), low);
一時は文字列を保持している文字列です。ここで問題になっているfor_eachラインです。そして、ここで私が低いために書いた機能です:
void low(char& x)
{
x = tolower(x);
}
そして、私は得続けるコンパイラエラーは、次のようなである:私は間違っ
error: invalid conversion from void (*)(char&) to char [-fpermissive]
何をしているのですか?
EDIT:
void clean_entry (const string& orig, string& clean)
{
string temp;
int beginit, endit;
beginit = find_if(orig.begin(), orig.end(), alnum) - orig.begin();
endit = find_if(orig.begin()+beginit, orig.end(), notalnum) - orig.begin();
temp = orig.substr(beginit, endit - beginit);
clean = for_each(temp.begin(), temp.end(), low);
}
です。小さな完全な例を提供できますか? –