いつもお世話になっております。
c言語の配列について質問です。
受け取るデータが8つあり、0x01,0x02,0x03,0x04,x,0x06,0x07,0x08のように5番目だけが変化する場合があります。
配列として比較したいので、
const int arrayA[4] = {0x01,0x02,0x03,0x04};
const int arrayB[3] = {0x06,0x07,0x08};
int main(void){
arrayTest[8] = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};//受け取るデータ
if( (memcmp(arrayTest, arrayA, 4)) && (memcmp(arreyTest + 5, arrayB, 3)) ){
printf("成功");
}
else{
printf("失敗");
}
return 0;
}
というように変わる部分の前半と後半で比較しようとしたのですが、"失敗"が表示されました。
また使い方の確認のために、前半のif( (memcmp(arrayTest, arrayA, 4)) )だけでやってみましたがやはり"失敗"と返されました。
お聞きしたいことは、
・memcmpの使い方を間違っていると予想したが、どう間違っているかがわからないので原因を知りたい
です。
どうかご教示をよろしくお願いいたします。
また、もしよろしければ、これよりうまい比較方法などを教えていただけると幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/29 02:29