我有 2 个语言代码进入流。我将它存储在一个 3 字节的 char 数组中(unsigned char a[3])。我想将它与存储在指针(unsigned char *c)中的另一个值进行比较。数组 a[3] 存储在结构(struct s[2])中以获取多个数据 - 这对我来说是否正确与数组有点混淆 - 不能使 const 指针指向另一个位置,因为它已经指向一个位置。但是将数组包含在结构中并使结构数组的第 zeorth 元素指向一个位置,并且结构数组的第一个元素是可能的。我的理解是否正确。
我想存储 2 个数组值。所以我声明了一个结构,其中我声明了 3 字节字符数组。这种做法是否正确。有没有其他方法可以做到这一点。
编辑:
#include<stdio.h>
int main(){
int i,flag=0,count=0;
struct n{
unsigned char b[3];
};
unsigned char *d=NULL;
struct s{
unsigned char *a;
};
struct s m[2];
struct n w[2];
// memcpy(w[0].b,"eng",sizeof("eng"));
// memcpy(w[1].b,"fre",sizeof("fre"));
strcpy(w[0].b,"eng");
strcpy(w[1].b,"fre");
d = w[1].b; // current lang
m[0].a = w[0].b; // storing the 2 lang in a pointer inside a structure
m[1].a = w[1].b;
i=0;
printf("\nm[0].a:%s\n",m[0].a);
printf("\nm[1].a:%s\n",m[1].a);
printf("\nw[0].b:%s\n",w[0].b);
printf("\nw[1].b:%s\n",w[1].b);
while((m[i].a) && d){ // And comparing
if(m[i].a++ != d++){
flag =1; //if strings are unequal break;
break;
}
i++;
}
if(flag){
printf("Not equal\n");
}
else{
printf("\nEqual\n");
flag =0;
}
return 0;
}
o/p:
m[0].a:engfre
m[1].a:fre
w[0].b:engfre
w[1].b:fre
Not equal
但是有一个错误,它显示不相等。这种将数组存储在结构内的指针中的方法是正确的方法吗?或者有没有其他方法可以做到这一点。
编辑:
我想比较这两个字符串。2个字符串相等,但我认为它不相等。指针是否需要存储在结构中以存储 2 个数组,或者是否有另一种方法来解决这个问题。