c++ transform函数用法 c++大小写转换代码

transform函数可用于字符串大小写转换,需包含头文件;使用::tolower将大写转小写,::toupper将小写转大写,通过std::transform对字符逐个处理,操作时需注意作用域符和目标迭代器设置。

在C++中,transform 函数是 std::algorithm 头文件中的一个非常实用的算法函数,常用于对容器中的每个元素进行变换。它特别适合用来实现字符串的大小写转换。

transform 函数基本用法

std::transform 的常用形式如下:

std::transform(起始迭代器, 结束迭代器, 目标迭代器, 变换函数);

它可以将一个区间内的每个元素通过指定函数处理后,输出到另一个区间。

大写转小写(tolower)

使用 std::tolower 将字符串中的所有大写字母转换为小写。

#include iostream>
#include
#include
#include // tolower, toupper

int main() {
    std::string str = "Hello World";
    // 转换为小写
    std::transform(str.begin(), str.end(), str.begin(), ::tolower);
    std::cout     return 0;
}

小写转大写(toupper)

使用 std::toupper 将字符串中的所有小写字母转换为大写。

#include stream>
#include
#include
#include

int main() {
    std::string str = "Hello World";
    // 转换为大写
    std::transform(str.begin(), str.end(), str.begin(), ::toupper);
    std::cout     return 0;
}

注意事项和技巧

使用 transform 进行大小写转换时,注意以下几点:

  • 必须包含头文件 ,其中定义了 tolower 和 toupper 函数。
  • 调用 tolower 或 toupper 时,前面加 :: 表示使用全局的 C 风格函数,避免与 std 命名空间中的同名函数混淆。
  • transform 不会自动调整字符串长度,只对现有字符操作,适用于 string、vector 等支持迭代器的容器。
  • 如果目标位置不是原地转换,可以指定不同的目标迭代器,例如输出到另一个字符串。

基本上就这些。transform 配合 tolower/toupper 是 C++ 中最简洁的大小写转换方式之一,适用于大多数文本处理场景。不复杂但容易忽略细节,比如头文件和作用域符的使用。