c++20 ranges 实现字符串转小写
C++20引入了ranges标准库,其中包含了一些方便的算法和视图(view)来处理序列。可以使用ranges视图来实现字符串转小写的操作。
下面是一个使用ranges实现字符串转小写的例子:
#include <iostream>
#include <ranges>
#include <string>
int main() {
std::string str = "HELLO, WORLD!";
std::ranges::transform(str, str.begin(), [](char c) {
return std::tolower(c);
});
std::cout << str << std::endl;
return 0;
}
在这个例子中,我们使用std::ranges::transform算法来对字符串中的每个字符进行转换,使用std::tolower函数将字符转换为小写形式,然后将结果存储回原字符串中。
运行程序,输出结果为:
hello, world!
使用ranges视图可以让代码更加简洁和易读。例如,可以使用std::views::transform视图来代替算法版本:
#include <iostream>
#include <ranges>
#include <string>
int main() {
std::string str = "HELLO, WORLD!";
str |= std::views::transform([](char c) {
return std::tolower(c);
});
std::cout << str << std::endl;
return 0;
}
在这个例子中,我们将字符串转换为视图,并使用std::views::transform视图对每个字符进行转换,然后将结果存储回原字符串中。
运行程序,输出结果与前一个例子相同:
hello, world!
原文地址: https://www.cveoy.top/t/topic/sFu 著作权归作者所有。请勿转载和采集!