简单的转换不起作用

时间:2013-02-24 02:00:58

标签: c++ 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 {

1 个答案:

答案 0 :(得分:3)

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

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