gpt4 book ai didi

c++ - 将字符串中的第一个大写字母转换为小写字母

转载 作者:太空狗 更新时间:2023-10-29 21:31:51 24 4
gpt4 key购买 nike

我正在寻找一种比下面的代码更优雅的方法来查找字符串中第一个大写字母的位置:

size_t getFirstUppercasePosition(const string &str)
{
for(size_t i = 0; i < str.size(); ++i)
{
if (isupper(str[i]))
return i;
}
return string::npos;
}

是否可以使用 findfind_if 做同样的事情?


添加:

我正在尝试将第一个大写字母转换为小写字母,然后从字符串中删除前面的部分。

例如,howAreYouToday -> areYouToday

添加2:

const auto it = std::find_if(str.begin(), str.end(), [](auto c)
{return std::isupper(c);});
*it = tolower(*it);
str = str.substr(std::distance(str.begin(), it));

这是最好的方法吗?

最佳答案

如果您有权访问 C++11 及更高版本,则可以将 lambda 与 find_if 一起使用:

auto itr = std::find_if(str.begin(), std.end(), [] (char chr) { return std::isupper(chr); });
if(itr != str.end())
// use itr..

如果您确实需要索引,则可以使用 std::distance

关于c++ - 将字符串中的第一个大写字母转换为小写字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56968178/

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