c++比较两个字符串相同
时间: 2024-11-18 22:11:43 浏览: 27
在C++中,比较两个字符串是否相同的常见方法有几种:
1. **`strcmp()`函数**:这是C语言提供的函数,但在C++中也可直接使用,它会逐字符比较两个字符串,如果找到第一个不匹配的字符则返回一个整数表示大小关系。若两个字符串完全相等,则返回0。
```cpp
#include <cstring>
bool stringsAreEqual(const std::string& str1, const std::string& str2) {
return strcmp(str1.c_str(), str2.c_str()) == 0;
}
```
2. **`std::equal()`算法**:可以使用 `<algorithm>` 库里的 `std::equal()` 函数,这个函数检查两个迭代器指向的元素是否都相等,对于字符串来说就是字符是否都相同。
```cpp
bool stringsAreEqual(const std::string& str1, const std::string& str2) {
return std::equal(str1.begin(), str1.end(), str2.begin());
}
```
3. **自定义函数**:也可以编写一个自定义的函数,遍历每个字符并逐个对比,直到遇到不匹配或其中一个结束。
```cpp
bool compareStrings(char* str1, char* str2, int len = -1) {
if (len == -1) len = strlen(str1);
for (int i = 0; i < len && str1[i] == str2[i]; ++i) {}
return i == len;
// 或者使用 C++ 语法简化为:
// return str1.compare(0, len, str2) == 0;
}
```
阅读全文