toupper
和 tolower
是 C++ 标准库中的两个函数,用于字符的大小写转换。这两个函数都定义在 <cctype>
头文件中。以下是它们的详细介绍及代码示例。
1. toupper
函数
toupper
函数用于将小写字符转换为对应的大写字符。如果输入的字符不是小写字母,函数将返回该字符本身。
函数原型:
int toupper(int c);
参数:
c
:要转换的字符(以int
类型传递,但实际是char
类型)。
返回值:
- 返回转换后的大写字符(
int
类型)。如果c
不是小写字母,则返回c
本身。
2. tolower
函数
tolower
函数用于将大写字符转换为对应的小写字符。如果输入的字符不是大写字母,函数将返回该字符本身。
函数原型:
int tolower(int c);
参数:
c
:要转换的字符(以int
类型传递,但实际是char
类型)。
返回值:
- 返回转换后的小写字符(
int
类型)。如果c
不是大写字母,则返回c
本身。
代码示例
以下是一个使用 toupper
和 tolower
函数的简单示例:
#include <iostream>
#include <cctype> // 包含 toupper 和 tolower 函数的头文件
int main() {
// 示例字符串
std::string text = "Hello, World! 123";
// 使用 toupper 函数将字符串转换为大写
std::cout << "Original text: " << text << std::endl;
std::cout << "Uppercase text: ";
for (char c : text) {
std::cout << static_cast<char>(std::toupper(c));
}
std::cout << std::endl;
// 使用 tolower 函数将字符串转换为小写
std::cout << "Original text: " << text << std::endl;
std::cout << "Lowercase text: ";
for (char c : text) {
std::cout << static_cast<char>(std::tolower(c));
}
std::cout << std::endl;
return 0;
}
输出结果:
注意事项
-
字符集:
toupper
和tolower
函数的行为依赖于当前的字符集(locale)。对于大多数常见的字符集(如 ASCII),这些函数都能正常工作。但在某些特殊的字符集下,可能会有不同的行为。 -
非字母字符:对于非字母字符(如数字、标点符号),这两个函数会直接返回原字符,不会进行任何转换。
-
类型转换:由于函数返回的是
int
类型,因此在将返回值赋给char
类型变量时,需要进行类型转换(如上例中的static_cast<char>
)。
通过这两个函数,可以方便地在 C++ 程序中进行字符的大小写转换操作。