答案:C++中使用std::toupper和std::tolower可实现字符大小写转换,需包含cctype头文件,二者分别将小写转大写、大写转小写,适用于ASCII字符,非字母不变,处理时需确保字符为unsigned char范围,宽字符应使用cwctype中的对应函数。

在C++中,将字符转换为大写或小写通常使用标准库中的函数。这些函数定义在cctype头文件中,最常用的是std::toupper和std::tolower。它们可以处理单个字符的大小写转换,适用于ASCII字符集。
包含必要的头文件
要使用大小写转换函数,需要包含cctype头文件:
#include使用 std::toupper 转换为大写
std::toupper接受一个字符作为参数,如果该字符是小写字母,则返回对应的大写字母;否则返回原字符。
示例:
立即学习“C++免费学习笔记(深入)”;
char ch = 'a';ch = std::toupper(ch); // ch 变为 'A'
也可以用于字符串中的每个字符:
#include iostream>#include
#include
int main() {
std::string str = "hello world";
for (char& c : str) {
c = std::toupper(c);
}
std::cout return 0;
}
使用 std::tolower 转换为小写
std::tolower与std::toupper类似,用于将大写字母转换为小写。
示例:
立即学习“C++免费学习笔记(深入)”;
char ch = 'B';ch = std::tolower(ch); // ch 变为 'b'
对整个字符串进行小写转换:
std::string str = "HeLLo WoRLd";for (char& c : str) {
c = std::tolower(c);
}
// 结果为 "hello world"
注意事项
这些函数只对字母有效,非字母字符(如数字、标点符号)会被原样返回。确保传入的字符值在unsigned char范围内,或为EOF。避免传递负值(特别是使用有符号char时),以防未定义行为。
如果处理宽字符(如中文或Unicode),应使用std::towupper和std::towlower,并包含











