判断两个由大写字母和空格组组成的字符串在忽略大写,并且忽略空格后是否相等
时间: 2023-12-22 17:17:18 浏览: 36
可以使用C++的STL库中的算法和字符串函数来实现这个功能。
首先,我们需要将两个字符串中的大写字母全部转换为小写字母,并且将其中的空格全部删除。可以使用`std::transform`算法和`std::remove_if`函数来实现这个功能。
接下来,我们只需要比较两个处理过的字符串是否相等即可,可以使用`std::equal`算法来实现。
以下是一个示例代码:
```c++
#include <iostream>
#include <algorithm>
#include <string>
bool isEqual(std::string str1, std::string str2) {
// 将字符串中的大写字母全部转换为小写字母
std::transform(str1.begin(), str1.end(), str1.begin(), ::tolower);
std::transform(str2.begin(), str2.end(), str2.begin(), ::tolower);
// 删除字符串中的空格
str1.erase(std::remove_if(str1.begin(), str1.end(), ::isspace), str1.end());
str2.erase(std::remove_if(str2.begin(), str2.end(), ::isspace), str2.end());
// 比较两个字符串是否相等
return std::equal(str1.begin(), str1.end(), str2.begin(), str2.end());
}
int main() {
std::string str1 = "A B C";
std::string str2 = "abc";
if (isEqual(str1, str2)) {
std::cout << "两个字符串相等" << std::endl;
} else {
std::cout << "两个字符串不相等" << std::endl;
}
return 0;
}
```
输出结果为:
```
两个字符串相等
```