Я пытаюсь использовать функцию STL for_each для преобразования строки в нижний регистр, и я понятия не имею, что я делаю неправильно. Вот for_each линия вопрос:Использование for_each с tolower()
clean = for_each(temp.begin(), temp.end(), low);
Где температура является строкой, которая держит строку. А вот функция, которую я написал для низко:
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);
}
Я попробовал тестовую программу и не получите сообщение об ошибке. Можете ли вы дать небольшой полный пример? –