所以我初始化了一个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;,但我不知道如何使用它。
答案 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
作为结束。