简单的转换无法工作

Simple transform tolower not working

本文关键字:工作 转换 简单      更新时间:2023-10-16

所以我看到了很多类似的问题,但没有一个答案能解决我的问题。有人能解释为什么这个代码:吗

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

在这个项目中,我需要将许多字符串转换为更低的字符串,而boost不是一个选项。我从以前的项目中复制并粘贴了这段代码。

此外,头文件还包括以下内容:

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

您的方法应该返回字符串,但您尝试从std::transform返回迭代器。更改为:

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