向char数组中添加int类型

Adding an int to an array of char

本文关键字:int 类型 添加 char 数组      更新时间:2023-10-16

我试图转换一个int (4bytes)并将其添加到字符数组中。我使用从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是要转换的整型值。它工作得很好,例如,如果我要使用上面的代码转换值100,它将给出以下内容:'','','','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;