通八洲科技

C++如何将字符串转换为小写或大写?(代码示例)

日期:2025-12-12 00:00 / 作者:裘德小鎮的故事
推荐使用for循环配合std::tolower(需先转unsigned char)转换字符串为小写,安全清晰兼容性好。

在C++中,将字符串转换为小写或大写最常用的方法是遍历每个字符,调用 std::tolowerstd::toupper(需包含 ),并配合 std::string 的索引操作或迭代器。注意:这些函数作用于单个 unsigned char 值,直接传入 char 可能在负值时导致未定义行为,因此需先转换为 unsigned char

转换为小写(使用 for 循环 + tolower)

安全、清晰、兼容性好,推荐日常使用:

#include 
#include 
#include  // tolower, toupper

std::string toLower(const std::string& s) {
    std::string result = s;
    for (size_t i = 0; i < result.length(); ++i) {
        result[i] = static_cast(std::tolower(static_cast(result[i])));
    }
    return result;
}

// 使用示例
int main() {
    std::string s = "Hello World! 123";
    std::cout << toLower(s) << "\n"; // 输出: hello world! 123
}

转换为大写(使用范围 for + toupper)

更现代简洁的写法,同样注意 unsigned char 转换:

std::string toUpper(std::string s) { // 传值避免修改原串
    for (char& c : s) {
        c = static_cast(std::toupper(static_cast(c)));
    }
    return s;
}

就地转换(不创建新字符串)

如果允许修改原字符串,可省去拷贝,提升效率:

注意事项与常见坑

基本上就这些。标准库方式简单可靠,适合大多数 ASCII 场景。