c++大小写转换函数
时间: 2024-10-08 21:03:43 浏览: 112
在 C++ 中,大小写转换通常涉及到字符串处理。标准库中并没有内置的函数直接用于大小写转换,但是你可以通过一些简单的操作组合实现这个功能。以下是一些常用的方法:
1. 对于全部转大写或小写,可以分别使用 `std::toupper` 和 `std::tolower` 函数,它们属于 `<cctype>` 头文件中的成员函数,接受一个字符作为参数并返回相应的大写或小写字母。如果你需要转换整个字符串,可以遍历每个字符进行转换。
```cpp
#include <cctype>
#include <string>
// 转换为大写
std::string toUpperCase(std::string str) {
std::transform(str.begin(), str.end(), str.begin(), ::toupper);
return str;
}
// 转换为小写
std::string toLowerCase(std::string str) {
std::transform(str.begin(), str.end(), str.begin(), ::tolower);
return str;
}
```
2. 如果你需要逐个字符处理,可以使用 `std:: toupper` 或 `std::tolower` 结合 `std::char_traits<char>::to_int_type` 将字符转换为整数,然后再次转换回字符。
```cpp
#include <cctype>
#include <string>
#include <locale>
std::string convertCase(std::string str, bool toUpper) {
std::locale loc;
for (auto& c : str) {
int value = static_cast<int>(std::use_facet<std::ctype<char>>(loc).category(c));
if (toUpper && value >= 'a' && value <= 'z') {
c = static_cast<char>(value - ('a' - 'A'));
} else if (!toUpper && value >= 'A' && value <= 'Z') {
c = static_cast<char>(value + ('a' - 'A'));
}
}
return str;
}
```
以上代码会将输入字符串中的字母字符转换为其对应的大小写形式。
阅读全文