温馨提示×

c++ string库函数能否转换字符串大小写

c++
小樊
89
2024-09-24 22:18:02
栏目: 编程语言
C++开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

C++的<string>库提供了一些函数来操作字符串,但是它们并不直接提供转换字符串大小写的功能。要实现这个功能,你可以使用C++的<algorithm>库中的transform函数,结合自定义的函数或者lambda表达式来完成。

以下是一个简单的示例,展示了如何使用transform函数将字符串转换为小写:

#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>

int main() {
    std::string str = "Hello, World!";
    std::transform(str.begin(), str.end(), str.begin(), ::tolower);
    std::cout << str << std::endl;  // 输出: hello, world!
    return 0;
}

在这个示例中,::tolower是一个全局函数,用于将给定的字符转换为小写。std::transform函数接受输入字符串的范围(str.begin()str.end()),以及一个目标范围的开始迭代器(str.begin()),并将输入范围内的每个字符转换为小写,然后将结果存储在目标范围内。

同样地,你可以使用::toupper函数将字符串转换为大写。

如果你想要一个更通用的函数,可以转换字符串的大小写,你可以定义一个自定义的函数或者lambda表达式,例如:

auto to_lower = [](char c) { return std::tolower(static_cast<unsigned char>(c)); };
std::string str = "Hello, World!";
std::transform(str.begin(), str.end(), str.begin(), to_lower);
std::cout << str << std::endl;  // 输出: hello, world!

在这个示例中,to_lower是一个lambda表达式,它接受一个字符作为参数,并返回该字符的小写形式。注意,我们将字符转换为unsigned char,以避免在调用std::tolower时处理负值。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:如何用c++ string库函数比较字符串大小

0