将数组b和c与a:
进行比较的最佳方法是什么?int a[] = {0,1,0,0,1};
int b[] = {0,1,0,0,1};
int c[] = {1,1,0,0,1};
b和c只是示例,假设它们可以是0和1的任意组合。
我正在尝试检测与a相同的数组。我用谷歌搜索了一段时间,但没有找到满意的答案。
这是我意识到的初学者问题,感谢您的耐心等待。
答案 0 :(得分:26)
使用memcmp
中的标准<string.h>
功能。
memcmp(a, b, sizeof(a)) == 0
只要a
和b
相等。
答案 1 :(得分:5)
如果你的意思是
int a[] = {0,1,0,0,1};
int b[] = {0,1,0,0,1};
int c[] = {1,1,0,0,1};
然后
memcmp(a, b, sizeof(a)); /* returns zero for a match */
memcmp(a, c, sizeof(a)); /* returns nonzero for no match */
答案 2 :(得分:4)
使用循环并逐个比较各个元素。
答案 3 :(得分:0)
关于这个问题需要更多信息..! 我可以通过以下两种方式划分你的问题,
问题1的解决方案: 一个人可以使用memcmp来解决这个问题。因为 memcomp 会比较词典,并返回0或1或-1,如下所示
#include<stdio.h>
#include<string.h>
int main()
{
char a[]={'a','b','c'};
char b[]={'a','b','c'};
int x=memcmp(a,b,sizeof(a));
printf("%d\n",x);
return 0;
}
***output:0***
#include<stdio.h>
#include<string.h>
int main()
{
char a[]={'a','c','b'};
char b[]={'a','b','c'};
int x=memcmp(a,b,sizeof(a));
printf("%d\n",x);
return 0;
}
***output:1***
#include<stdio.h>
#include<string.h>
int main()
{
char a[]={'a','b','c'};
char b[]={''b,'a','c'};
int x=memcmp(a,b,sizeof(a));
printf("%d\n",x);
return 0;
}
***output:-1***
问题2的解决方案: 一个人可以使用memcmp来解决这个问题,这个问题的最佳解决方案如下所示
我在这里回答了上述问题 https://stackoverflow.com/a/36130812/5206646