答案是使用std::toupper和std::tolower函数转换字符大小写,结合std::transform可处理整个字符串。这些函数定义在中,适用于单字符或遍历字符串,仅对英文字母有效,需注意字符类型兼容性。

在C++中,将字符转换为大写或小写通常使用标准库中的函数。最常用的是 std::toupper 和 std::tolower,它们定义在
使用 std::toupper 和 std::tolower 转换单个字符
这两个函数接受一个 int 类型的字符(实际传入 char 会被自动提升),返回对应的大写或小写形式(仍为 int 类型,通常需转回 char)。
示例代码:
#include
#include
int main() {
char ch = 'a';
char upper_ch = static_cast(std::toupper(ch));
char lower_ch = static_cast(std::tolower('B'));
std::cout << "大写: " << upper_ch << std::endl; // 输出 A
std::cout << "小写: " << lower_ch << std::endl; // 输出 b
return 0;
}
转换整个字符串的大小写
若要转换整个字符串,可以结合 std::transform 算法和 std::toupper 或 std::tolower。
立即学习“C++免费学习笔记(深入)”;
示例:将字符串全部转为大写
#include
#include
#include
#include
int main() {
std::string str = "Hello World";
std::transform(str.begin(), str.end(), str.begin(), ::toupper);
std::cout << str << std::endl; // 输出 HELLO WORLD
return 0;
}
注意:这里使用了 ::toupper,表示使用全局的 C 风格函数,避免与 std 命名冲突。
注意事项
这些函数只对英文字母有效,对数字、符号或非 ASCII 字符无影响。传入值应为可表示为 unsigned char 的字符,或 EOF。处理字符串时确保字符集兼容(如 UTF-8 中多字节字符需特殊处理)。
基本上就这些方法,简单直接,适用于大多数基本场景。











