gpt4 book ai didi

c++ - 将 int 添加到 char 数组

转载 作者:行者123 更新时间:2023-11-28 06:04:10 25 4
gpt4 key购买 nike

我正在尝试转换一个 int(4 字节)并将其添加到一个字符数组中。我使用从 stackoverflow 中找到的代码将 int 转换为 char。

unsigned char buffer[4];
buffer[0] = (value >> 24) & 0xFF;
buffer[1] = (value >> 16) & 0xFF;
buffer[2] = (value >> 8) & 0xFF;
buffer[3] = value & 0xFF;

其中 value 是我要转换的 int 值。它工作得很好,例如,如果我使用上面的代码转换值 100,它将给出以下内容:'\0', '\0', '\0', 'd'

我正在尝试将其添加到我拥有的 char 数组中(它添加到索引 i,而不是索引 0),但是由于第一个字符为空,我的 char (cstring) 数组被截断从那里。所以我只能看到索引 i - 1 处的字符串,并且由于 null 出现在索引 i 处,所以我的 cstring 到此结束。我想知道是否有人知道克服这种情况的方法。任何帮助将不胜感激!

最佳答案

如果您要移动二进制数据,请不要使用strcpy 或任何str* 命令。请改用 memcpy

unsigned char buffer[4];
buffer[0] = (value >> 24) & 0xFF;
buffer[1] = (value >> 16) & 0xFF;
buffer[2] = (value >> 8) & 0xFF;
buffer[3] = value & 0xFF;
memcpy(otherstring + offset, buffer,sizeof(buffer));

char* buffer = otherstring + offset;
buffer[0] = (value >> 24) & 0xFF;
buffer[1] = (value >> 16) & 0xFF;
buffer[2] = (value >> 8) & 0xFF;
buffer[3] = value & 0xFF;

关于c++ - 将 int 添加到 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32732223/

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