C语言中,怎样可以将一维数组和二维数组进行对比?

打个比方,这里有个从键盘输入的一维数组"abc123"和二维数组"abc123""def456",
现在怎样可以将这个一维数组和二维数组进行对比,只要这个一维数组和二维数组中的某一行完全相等,就输出1,否则输出0。

char a[]="abc123";
char b[2][]={"abc123","def456"};
tag=0;
for(i=0;i<2;i++)
if(strcmp(a,b[i])==0) {tag=1;printf("1");break;}
if(tag==0) printf("0");追问

“TAG”是什么?

追答

设一个变量来看是否有某行和一维数组相等,如果没有的话,这个变量的值为0,在循环结束后就知道没有相等的行了。

追问

如果说要从键盘输入这个一维数组和二维数组而不是一开始就赋初值呢?

追答

gets(a);
for(i=0;i<2;i++) gets(b[i]);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-16
这还得比较长度啊,循环挨个比啊,只要一个不等就跳出循环呗
第2个回答  2011-12-16
#include<stdio.h>
#include<string.h>
int main()
{
int i=0;
char a1[10]="abc123";
char a2[3][20]={"abcd","abcde","abc123"};
for(i=0;i<3;i++){
if(strcmp(a1,a2[i])==0){
printf("Yes\n");
}else{
printf("No\n");
}
}
return 0 ;
}追问

如果说要从键盘输入这个一维数组和二维数组而不是一开始就赋初值呢?

追答

从键盘输入字符串 ?scanf("%s",a1);

追问

不不,是键盘输入赋给数组,是不是最后要加个“\0”?

相似回答