Простое преобразование tolower не работает

Так что я видел много подобных проблем, но ни один из ответов не решает мою проблему. Может кто-нибудь объяснить, почему этот код:

string LinkedListByName::toLower(string stringToConvert){

return std::transform(stringToConvert.begin(), stringToConvert.end(), stringToConvert.begin(), ::tolower); }

дает мне эту ошибку:

conversion from `__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >' to non-scalar type `std::string' requested

В проекте мне нужно будет преобразовать много строк в более низкие, и повышение НЕ является опцией. Я буквально скопировал и вставил этот код из предыдущих проектов, в которых он функционировал.

Кроме того, заголовочный файл включает в себя следующее:

#include <vector>
using namespace std;
#include <iostream>
using namespace std;
#include <string>
using namespace std;
#include <algorithm>
#include "Node.h"namespace model {

0

Решение

Ваш метод должен возвращать строку, но вместо этого вы пытаетесь вернуть итератор из std :: transform. Измените это на это:

string LinkedListByName::toLower(string stringToConvert){
std::transform(stringToConvert.begin(), stringToConvert.end(), stringToConvert.begin(), ::tolower);
return stringToConvert;
}
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]