从 boost::array<char, 100 中提取字符集>

extract sets of characters from boost::array<char, 100>

本文关键字:提取 字符集 gt boost lt char array      更新时间:2023-10-16

所以我已经初始化了一个长度为100的Char数组,它接收来自UDP套接字的传入字节。我可以从数组中获得单个字符,如;

boost::array<char, 100> recv_buffer_;
std::cout << "1st char of array:>" << recv_buffer_[0] << std::endl;
// or like this;
std::cout << "1st char of array:>" << recv_buffer_.at(0) << std::endl;

但是我不知道如何从这个数组中提取一些字符集。即,如果我收到"这是一个测试"在我的recv_buffer_,我怎么能提取子字符从索引2到索引8即。"is is a"。就像在python中,你可以通过简单地给出起始和结束索引从字符串中提取子字符串。

>>my_string = "this is a test"
>>print my_string[2:8]
>>is is a

我正在寻找boost数组char的类似功能。在boost数组的文档中,提到了"操作符"的使用,但我不知道如何使用它。

可以使用string的构造函数

string my_string(recv_buffer_.data() + 2, recv_buffer_.data() + 8 + 1);

与所有标准容器一样,boost::array支持迭代器

要获得一个范围,您可以使用例如recv_buffer_.begin() + 2作为开始,例如recv_buffer_.begin() + 8作为结束。