sách gpt4 ăn đã đi

Ghép nối (nối) vectơ chuỗi vào bộ đệm ký tự với các byte bằng 0 làm dấu phân cách/kết thúc

In lại 作者:搜寻专家 更新时间:2023-10-31 02:10:44 31 4
mua khóa gpt4 giày nike

有没有更好的方法将字符串 vector 转换为字符 vector ,字符串之间的终止符为零。

因此,如果我有一个包含以下字符串的 vector "test","my","string",那么我想接收一个字符 vector :"test\0my\0string\0".

目前这段代码可以正常工作,但是还有更好(更漂亮)的解决方案吗?

std::vector string_array = {"test", "my", "string"};
std::vector buffer_temp;
for (auto &str : string_array)
{
for (auto &chr : str)
{
buffer_temp.push_back(chr);
}
buffer_temp.push_back('\0');
}

câu trả lời hay nhất

永远不要忘记 std::vector::insert您的示例可以简化如下的方法:

std::vector string_array = { "test", "my", "string" };
std::vector buffer_temp;

for(auto& s : string_array)
buffer_temp.insert(buffer_temp.end(), s.c_str(), s.c_str() + s.size() + 1);

std::string::c_str 返回一个指向空终止字符数组的指针,因此您不必附加额外的 '\0'到来自您的 string_array 的每个元素的末尾。


响应下面的评论,您也可以使用 std::chuỗi 迭代器,因为 std::chuỗi 具有随机访问迭代器,您可以执行以下操作:

for(auto& s : string_array)
buffer_temp.insert(buffer_temp.end(), s.begin(), s.end() + 1);

关于c++ - 将字符串 vector 连接(连接)到字符缓冲区,零字节作为分隔符/终止符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44817878/

31 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress