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

avatar
作者
猴君
阅读量: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时处理负值。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!