gpt4 book ai didi

c++ - 如何检查字符数组是否组合成某些连续的字符列表?

转载 作者:太空宇宙 更新时间:2023-11-04 15:30:31 27 4
gpt4 key购买 nike

例如,我的字符数组可能类似于...

char array[8] = {0x00,0x07, 0x28, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0x71}

我想检查 char[2] 到 char[7] 是否等于 '28 FF AF 00 00 00' 十六进制,我将如何以最简单的方式做到这一点?我知道我可以单独检查每个元素,但我想知道我是否可以以某种方式指定我在空间 char[2] 到 char[7] 中搜索十六进制 28FFAF000000。

最佳答案

std::equal :

const bool equal = std::equal(array+2, array+8, "\x28\xff\xaf\x00\x00\x00");

std::equal(start1, end1, start2)逐个元素比较两个范围 [start1, end1)[start2, <end2>)其中 <end2>被选中,因此两个范围具有相等的长度。

如果您确定只使用字节,并且效率很重要,并且您检查过您的编译器没有优化 std::equal离开,你可以使用 C-ism std::memcmp :

const bool equal = (0 == std::memcmp(array+2, "\x28\xff\xaf\x00\x00\x00", 6));

关于c++ - 如何检查字符数组是否组合成某些连续的字符列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54635398/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com