将带有空字符的字符数组转换为字符串

时间:2014-04-08 20:19:16

标签: c++ string

我有一个字符缓冲区,用于通过网络发送消息。我使用memcpy序列化了一个整数,因此缓冲区中有一些空字符。目前,我将缓冲区声明为char数组,并使用序列化例程将结构m中的数据打包到其中

sendline = new char[256];
serialize(m, sendline);

void serialize(myMsg &m, char* out)
{
    uint16_t seq = htons(m.seq);
    memcpy(out, &m.type, sizeof(m.type));
    memcpy(out + sizeof(m.type), &seq, sizeof(seq));
    memcpy(out + sizeof(seq) + sizeof(m.type), m.data.c_str(), m.data.length());
}

我的问题是 - 我可以在这里使用字符串而不是字符数组吗?我尝试使sendline成为一个字符串,但它会终止第一个空字符的缓冲区。

0 个答案:

没有答案