比较数组的更好方法?

时间:2018-02-20 23:40:18

标签: c++ arrays

我想知道一种比较数组值的更好方法,这与我正在做的事情有所不同。

对于如下代码,是否可以使用case语句?

uint8_t array[8];

if (array[4] == '1' && array[5] == '2' && array[6] == 'b' && array[7] == 'c')
{
    //do something
}

3 个答案:

答案 0 :(得分:5)

首先,您需要使用逻辑AND运算符&&,而不是按位AND运算符&

其次,您可以使用std::memcmp而不是if语句中的四个逻辑表达式。

if ( std::memcmp(array + 4, "12bc", 4) == 0 )

答案 1 :(得分:3)

对于多样性,这是另一个......

create()

答案 2 :(得分:1)

简而言之:if ( !memcmp( array + 4, "12bc", 4 ) )。不要认为strncmp更好,因为:

1)arrayuint8_t而非char;

2)只比较4个字节,没有空终止,即没有字符串比较。