📌  相关文章
📜  从大写转换为小写 C++ (1)

📅  最后修改于: 2023-12-03 15:36:17.170000             🧑  作者: Mango

从大写转换为小写 C++

在编程过程中,有时需要将字符串中的大写字母转换为小写字母。C++ 提供了一些简单的函数,可以轻松地完成这项工作。

方式一:使用 tolower() 函数

tolower() 函数是 C++ 标准库提供的,它可以将大写字母转换为小写字母。要使用 tolower() 函数,需要包含头文件 cctype

下面是一个将字符串中所有大写字母转换为小写字母的示例程序:

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

using namespace std;

int main()
{
    string str = "HELLO WORLD";
    for (int i = 0; i < str.size(); ++i)
    {
        if (isupper(str[i])) // 如果是大写字母
        {
            str[i] = tolower(str[i]); // 转换为小写字母
        }
    }
    cout << str << endl; // 输出 hello world

    return 0;
}
方式二:使用 std::transform() 算法

C++ 标准库提供了一个 std::transform() 算法,它可以将一个序列的每个元素应用某个操作之后存储到另一个序列中。下面是一个将字符串中所有大写字母转换为小写字母的示例程序:

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

using namespace std;

int main()
{
    string str = "HELLO WORLD";
    transform(str.begin(), str.end(), str.begin(), ::tolower);
    cout << str << endl; // 输出 hello world

    return 0;
}

这里用到了 C++11 新增的 lambda 表达式来调用 tolower() 函数:

[](char c){ return ::tolower(c); }
总结

无论是使用 tolower() 函数还是 std::transform() 算法,都可以轻松地将大写字母转换为小写字母。需要注意的是,tolower() 函数的参数必须是正常的 ASCII 字母,而 std::transform() 算法要求元素类型支持赋值运算符。