gpt4 book ai didi

c++ - 如何合并多个字符数组,包括它们可能包含的空字符?

转载 作者:行者123 更新时间:2023-11-28 02:40:55 27 4
gpt4 key购买 nike

我正在尝试实现具有以下结构的应用程序网络协议(protocol):

|First 2 bytes is the command|next 4 bytes is the payload length|and then the payload|

命令是一个 char[2],负载长度是一个 char[4]。

我正在使用以下函数将负载长度 (int) 转换为 4 字节数组。如果负载长度小于 256 字节,则保存该值的数组的前 3 个字节为空,只有最后一个字节包含该值。

void intToBytes(int value, char *buffer)
{
buffer[0] = (value >> 24) & 0xff;
buffer[1] = (value >> 16) & 0xff;
buffer[2] = (value >> 8) & 0xff;
buffer[3] = value & 0xff;
}

如何将命令 char[2]、负载长度 char[4] 和负载 char[any] 合并到一个新的 char 数组中?

我试过:

strcpy(msg,command);
strcat(msg,payloadlength);
strcat(msg,payload);

但 msg char 数组仅包含命令和有效载荷,而忽略有效载荷长度字节。我在这里做错了什么?

最佳答案

不要使用 C 风格的字符串函数,它们用于 C 风格的字符串。这是任意二进制数据,您应该使用适合任意二进制数据的函数。也许std::vector <unsigned char>

关于c++ - 如何合并多个字符数组,包括它们可能包含的空字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26029647/

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