C++比较两个字符串的是否相等
时间: 2023-05-29 12:01:31 浏览: 1044
可以使用字符串库中的strcmp函数来比较两个字符串是否相等。
strcmp函数的用法如下:
```c
int strcmp(const char *s1, const char *s2);
```
其中s1和s2是要比较的两个字符串,函数返回值为0表示两个字符串相等,否则返回非零值。
示例代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[20] = "hello";
char str2[20] = "world";
char str3[20] = "hello";
if (strcmp(str1, str2) == 0) {
printf("str1 and str2 are equal\n");
} else {
printf("str1 and str2 are not equal\n");
}
if (strcmp(str1, str3) == 0) {
printf("str1 and str3 are equal\n");
} else {
printf("str1 and str3 are not equal\n");
}
return 0;
}
```
输出结果为:
```
str1 and str2 are not equal
str1 and str3 are equal
```
相关问题
c++判断两个字符串是否相等
在 C++ 中,可以使用字符串类 string 的 compare() 或者 == 运算符来比较两个字符串是否相等。
例如,可以使用以下代码判断两个字符串 str1 和 str2 是否相等:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str1 = "hello";
string str2 = "world";
if (str1 == str2) {
cout << "str1 equals str2" << endl;
} else {
cout << "str1 does not equal str2" << endl;
}
return 0;
}
```
也可以使用 compare() 方法:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str1 = "hello";
string str2 = "world";
if (str1.compare(str2) == 0) {
cout << "str1 equals str2" << endl;
} else {
cout << "str1 does not equal str2" << endl;
}
return 0;
}
```
以上两种方法都可以判断两个字符串是否相等。
c++比较两个字符串相同
在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;
}
```
阅读全文