gpt4 book ai didi

c++ - 将 for_each 与 tolower() 一起使用

转载 作者:太空宇宙 更新时间:2023-11-04 15:08:02 24 4
gpt4 key购买 nike

我正在尝试使用 STL 函数 for_each 将字符串转换为小写字母,但我不知道自己做错了什么。这是有问题的 for_each 行:

clean = for_each(temp.begin(), temp.end(), low);

其中 temp 是一个包含字符串的字符串。这是我为 low 编写的函数:

void low(char& x)
{
x = tolower(x);
}

我不断收到的编译器错误是这样的:

error: invalid conversion from void (*)(char&) to char [-fpermissive]

我做错了什么?

编辑:这是我正在编写的整个函数:

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);
}

最佳答案

您要执行的操作的标准用法是

#include <algorithm>
#include <string>

std::string data = "Abc";
std::transform(data.begin(), data.end(), data.begin(), ::tolower);

关于c++ - 将 for_each 与 tolower() 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9322320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com