如何在C++中实现字符(包括字母)的大写和小写转换?
时间: 2024-10-21 22:08:55 浏览: 26
cpp代码-将小写字母变成大写字母,其余原样输出
在C++中,你可以使用标准库提供的`<cctype>`头文件中的函数来实现字符的大写和小写转换。这里有两种常用的方式:
1. **`std::toupper()` 和 `std::tolower()`**:
- `std::toupper(char c)` 函数将小写字母转换成大写,对于非字母字符则不做改变。
- `std::tolower(char c)` 函数将大写字母转换成小写,同样对非字母字符保持不变。
```cpp
#include <cctype>
char toUpper(char c) {
return islower(c) ? toupper(c) : c;
}
char toLower(char c) {
return isupper(c) ? tolower(c) : c;
}
```
2. **`std::transform()` 和 `std::use_facet<std::ctype<char>>(std::locale())`**:
如果你需要处理整个字符串或者流,可以使用`std::transform()`配合`std::ctype` facets。
```cpp
#include <locale>
#include <algorithm>
std::string toUpperAndLowerCase(const std::string& str) {
std::locale loc;
std::ctype<char> facet(loc);
return std::transform(str.begin(), str.end(), str.begin(), facet.toupper());
// 或者 for (char &c : str) c = facet.toupper(c);
}
```
请注意,这些函数会改变原字符,如果你不想修改输入,记得复制一份再操作。
阅读全文