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

时间:2016-08-17 10:30:24

标签: c++ arrays boost char

所以我初始化了一个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;

但是我无法弄清楚如何从这个数组中提取一些字符集。即如果我收到&#34;这是一个测试&#34;在我的recv_buffer_中,如何将索引2中的子字符提取到索引8,即&#34;是&#34;。就像在python中一样,你可以通过简单地给出开始和结束索引来从字符串中提取子字符串。

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

我正在为boost数组char寻找类似的功能。在boost数组的文档中,提到了使用&#34; operator&#34;,但我不知道如何使用它。

2 个答案:

答案 0 :(得分:3)

您可以使用string的构造函数。

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

答案 1 :(得分:2)

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

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