在 C 语言 中,我们要比较两个 数组 是否相等,我们不可以直接使用等于进行比较,且没有系统方法可以进行直接比较。
要比较两个 C 语言的数组是否相等,我们只有使用 for 循环 或者 while 循环 去遍历数组,然后进行挨个比较。
通过循环遍历数组来比较数组
#include <stdio.h>
int main()
{
printf("嗨客网(www.haicoder.net)\n\n");
// C语言数组比较
int arr1[5] = {1, 3, 5, 7, 9};
int arr2[6] = {1, 3, 5, 7, 9};
int arr1Count = sizeof(arr1) / sizeof(arr1[0]);
int arr2Count = sizeof(arr2) / sizeof(arr2[0]);
if (arr1Count != arr2Count)
{
printf("arr1 != arr2\n");
return;
}
int i = 0;
for(i = 0; i < arr1Count; i++)
{
if (arr1[i] != arr2[i])
{
printf("arr1 != arr2\n");
return;
}
i++;
}
printf("arr1 == arr2\n");
return 0;
}
程序运行后,控制台输出如下:
首先,我们定义了两个 int 类型的数组,第一个数组有五个元素,第二个数组有六个元素,接着,我们首先,使用了 sizeof 获取了两个数组的长度。
比较两个数组是否相等的第一步就是先比较两个数组的长度是否相等,如果长度不相等,则直接使用 printf 输出不相等,然后使用 return 结束程序。
接着,我们使用了 for 循环去遍历数组的每一个元素,挨个比较两个数组,如果只要有一个元素不相等,那么就输出不相等,并使用 return 结束程序。
如果,数组全部遍历完毕了,那么就说明两个数组是相等,这里,因为,我们两个数组的长度不相等,因此最后,输出了不相等。现在,我们修改数组的长度相等,但元素不同,代码如下:
#include <stdio.h>
int main()
{
printf("嗨客网(www.haicoder.net)\n\n");
// C语言数组比较
int arr1[5] = {1, 3, 5, 7, 9};
int arr2[5] = {1, 3, 5, 7, 10};
int arr1Count = sizeof(arr1) / sizeof(arr1[0]);
int arr2Count = sizeof(arr2) / sizeof(arr2[0]);
if (arr1Count != arr2Count)
{
printf("arr1 != arr2\n");
return;
}
int i = 0;
for(i = 0; i < arr1Count; i++)
{
if (arr1[i] != arr2[i])
{
printf("arr1 != arr2\n");
return;
}
i++;
}
printf("arr1 == arr2\n");
return 0;
}
程序运行后,控制台输出如下:
这次,我们看到,数组 arr1 和数组 arr2 长度相等,但数组的最后一个元素不想等,因此,最后的结果还是数组不相等。现在,我们继续修改程序,使数组的长度相等,元素也相等,程序如下:
#include <stdio.h>
int main()
{
printf("嗨客网(www.haicoder.net)\n\n");
// C语言数组比较
int arr1[5] = {1, 3, 5, 7, 9};
int arr2[5] = {1, 3, 5, 7, 9};
int arr1Count = sizeof(arr1) / sizeof(arr1[0]);
int arr2Count = sizeof(arr2) / sizeof(arr2[0]);
if (arr1Count != arr2Count)
{
printf("arr1 != arr2\n");
return;
}
int i = 0;
for(i = 0; i < arr1Count; i++)
{
if (arr1[i] != arr2[i])
{
printf("arr1 != arr2\n");
return;
}
i++;
}
printf("arr1 == arr2\n");
return 0;
}
程序运行后,控制台输出如下:
这次,我们定义的两个数组的长度相等,内容也完全相同,因此,最后输出了相等。
要比较两个 C 语言的数组是否相等,我们只有使用 for 循环或者 while 循环去遍历数组,然后进行挨个比较。