c++判断char数组相同
时间: 2024-09-16 11:03:41 浏览: 63
在C++中,判断两个字符数组是否相同,通常需要逐个比较它们的元素直到找到第一个不同的字符,或者确定其中一个数组结束而另一个还没结束。这里提供一种简单的示例:
```cpp
#include <cstring> // 引入字符串库,用于strlen函数
bool arraysAreEqual(char arr1[], char arr2[], size_t len) {
if (len == 0) { // 如果数组长度为0,意味着它们都是空的,视为相等
return true;
}
for (size_t i = 0; i < len; ++i) {
if (arr1[i] != arr2[i]) { // 比较当前索引处的字符是否相同
return false;
}
}
return true; // 如果所有字符都匹配,则返回true
}
// 示例用法
char str1[] = "hello";
char str2[] = "world";
if (arraysAreEqual(str1, str2, std::strlen(str1))) {
std::cout << "The arrays are equal.\n";
} else {
std::cout << "The arrays are not equal.\n";
}
```
相关问题
判断string的内容和char数组内容是否相同
可以使用strcmp函数来判断string的内容和char数组内容是否相同。
例如,假设有一个string类型的字符串str和一个char类型的数组arr,可以这样判断它们的内容是否相同:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
string str = "hello";
char arr[] = "hello";
if (strcmp(str.c_str(), arr) == 0) {
cout << "The content is the same." << endl;
}
else {
cout << "The content is different." << endl;
}
return 0;
}
```
在上面的例子中,我们将string类型的字符串str转换为char类型的数组,然后使用strcmp函数来比较它们的内容。如果返回值为0,则表示它们的内容相同,否则表示它们的内容不同。
c语言将char数组插入vector<char>里,相同的内容不插入
可以使用循环遍历char数组,然后逐个判断是否已经存在于vector中,如果不存在则将其插入。可以参考以下代码:
```c++
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
int main() {
char arr[] = "hello world";
vector<char> vec;
for (int i = 0; i < strlen(arr); i++) {
bool exist = false;
for (int j = 0; j < vec.size(); j++) {
if (arr[i] == vec[j]) {
exist = true;
break;
}
}
if (!exist) {
vec.push_back(arr[i]);
}
}
for (int i = 0; i < vec.size(); i++) {
cout << vec[i];
}
cout << endl;
return 0;
}
```
输出结果为:
```
helo wrd
```
其中,`exist`变量表示当前字符是否已经存在于vector中,如果存在则将其标记为`true`,否则标记为`false`。在循环遍历完当前字符之后,如果`exist`为`false`,则将其插入到vector中。最后,使用循环遍历vector,将所有字符输出。
阅读全文