c++ 11中std::string 怎么将字符转为小写
时间: 2024-10-24 13:05:02 浏览: 45
在 C++11 中,你可以使用 `std::string` 类的成员函数 `to_lower()` 来将字符串中的所有字符转换为小写。这个函数属于 `<algorithm>` 头文件,所以在使用前需要包含它:
```cpp
#include <algorithm>
#include <string>
std::string str = "Hello World!";
str.erase(std::remove_if(str.begin(), str.end(), ::isupper), str.end()); // 移除大写字母
// 使用 to_lower()
str.lowercase(); // 注意,这里 'lowercase' 是一个假设的函数名,实际上 C++ 标准库并没有提供直接的 lowercase 函数,
// 如果你想实现这样的功能,通常会自定义一个辅助函数或者使用第三方库如 Boost。
// 或者,如果你只对整个字符串转换,可以直接遍历并替换字符
for (char& c : str) {
c = std::tolower(c); // 使用标准库中的 tolower 函数
}
```
相关问题
std::string 如何转为小写
在C++中,要将`std::string`转换为小写,你可以使用`std::transform`函数配合`std::tolower`标准库函数。以下是如何实现这个功能的一个示例:
```cpp
#include <algorithm>
#include <cctype> // 包含tolower函数
std::string str = "Test String"; // 原始字符串
// 使用transform和tolower将字符串转换为小写
std::transform(str.begin(), str.end(), str.begin(), ::tolower);
// 打印转换后的字符串
std::cout << str << '\n'; // 输出: test string
```
上述代码中,`std::transform`遍历输入范围(从`str.begin()`到`str.end()`),并将每个字符传递给`::tolower`,该函数会将字符转换为其小写形式。
std::string 如何比较字符串、
在 C++ 中,`std::string` 类型提供了一些内置的成员函数来进行字符串比较。主要有以下几种方式:
1. **==** 运算符:用于比较两个 `std::string` 对象的内容是否相等,如果内容完全一样,则返回 `true`,否则返回 `false`。
```cpp
std::string str1 = "hello";
std::string str2 = "world";
bool areEqual = (str1 == str2); // areEqual 的值将为 false
```
2. **!=** 运算符:用于检查两个字符串是否不相等,它的作用与 `==` 相反。
```cpp
bool notEqual = (str1 != str2); // notEqual 的值将为 true
```
3. `.compare()` 函数:可以指定开始位置和长度进行比较,或者默认从头到尾。如果字符串相同则返回0,小于0表示第一个字符串较小,大于0表示第一个字符串较大。
```cpp
int comparisonResult = str1.compare(str2);
```
4. `.find()` 或 `.rfind()` 函数:查找另一个字符串在当前字符串中的位置,如果找到则返回该位置,没找到则返回 `std::string::npos`。
```cpp
size_t index = str1.find("llo"); // 找到 "llo" 的起始位置,如在第二个字符
```
5. **lexicographical comparison**:`<`, `>`, `<=`, `>=` 操作符也可以用于对字符串进行字典序的比较。
记得,所有这些比较都是区分大小写的,如果你想进行不区分大小写的比较,可以先将字符串转换为小写或大写再做比较。
阅读全文