gpt4 book ai didi

c++ - 在 Boost Asio 缓冲区中搜索

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:38:16 25 4
gpt4 key购买 nike

我有一个 boost 缓冲区,我要在这个缓冲区中搜索一些东西,比如下面的代码:

auto buffer = boost::asio::buffer(my_array, my_array_size);
if (buffer.find("Hello"))
cout << "Found";
else
cout << "Not Found";

我知道 find 函数不存在。

最佳答案

您可以访问内容并使用 std::search 来了解这样的序列是否存在。

std::size_t size = boost::asio::buffer_size(buffer);
unsigned char* data = boost::asio::buffer_cast<unsigned char*>(buffer);
unsigned char pattern[] = {'H', 'E', 'L', 'L', 'O'};

auto it = std::search(data, data + size, std::begin(pattern), std::end(pattern));

if (it != data + size){
cout << "found";
} else {
cout << "not found";
}

请注意,由于我们处理的是原始内存字节,因此在缓冲区内搜索字符串时应注意编码。

关于c++ - 在 Boost Asio 缓冲区中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57239883/

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