std string 小写字符串
时间: 2023-10-16 14:10:01 浏览: 89
你可以使用 C++ 标准库中的 `transform` 算法和 `tolower` 函数来将字符串中的所有字符转换为小写。以下是一个示例代码:
```cpp
#include <algorithm>
#include <cctype>
#include <string>
int main() {
std::string str = "Hello World!";
std::transform(str.begin(), str.end(), str.begin(),
[](unsigned char c){ return std::tolower(c); });
// 现在 str 中的内容变为 "hello world!"
return 0;
}
```
在这个代码中,`transform` 算法会遍历字符串 `str` 中的每个字符,并将其作为参数传递给 lambda 函数。该 lambda 函数使用 `tolower` 函数将字符转换为小写,并返回转换后的字符。`transform` 算法会将返回值写入到 `str` 中原来的位置,从而实现将整个字符串转换为小写。
相关问题
c++ string类 字符串小写
你可以使用 C++ 标准库中的 `transform` 算法和 `tolower` 函数来将字符串中的所有字符转换为小写。以下是一个示例代码:
```cpp
#include <algorithm>
#include <cctype>
#include <string>
int main() {
std::string str = "Hello World!";
std::transform(str.begin(), str.end(), str.begin(),
[](unsigned char c){ return std::tolower(c); });
// 现在 str 中的内容变为 "hello world!"
return 0;
}
```
在这个代码中,`transform` 算法会遍历字符串 `str` 中的每个字符,并将其作为参数传递给 lambda 函数。该 lambda 函数使用 `tolower` 函数将字符转换为小写,并返回转换后的字符。`transform` 算法会将返回值写入到 `str` 中原来的位置,从而实现将整个字符串转换为小写。
std::string 比较字符串不区分大小写
`std::string` 是 C++ 标准库中的一个字符串类型,但它本身并不直接提供一个内置方法来进行不区分大小写的字符串比较。如果你想要在比较两个 `std::string` 对象时不考虑字符的大小写,通常需要手动转换或处理。
一种常见的做法是在比较前先将字符串转换为统一的大小写形式,比如都转换为大写或小写。你可以使用 `std::transform` 函数结合 `std::tolower` 或 `std::toupper` 来实现这个转换,然后再进行标准的 `<`、`>` 操作符比较。
例如:
```cpp
#include <algorithm>
#include <cctype>
bool compareIgnoreCase(const std::string& str1, const std::string& str2) {
std::string lowerStr1 = str1;
std::string lowerStr2 = str2;
std::transform(lowerStr1.begin(), lowerStr1.end(), lowerStr1.begin(), ::tolower);
std::transform(lowerStr2.begin(), lowerStr2.end(), lowerStr2.begin(), ::tolower);
return lowerStr1.compare(lowerStr2) == 0;
}
```
阅读全文