向char数组中添加int类型
Adding an int to an array of char
我试图转换一个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;
相关文章:
- 为什么 int 类型的枚举类值不能用作 int
- 如何将文本文件的特定行读取到 int 类型的数组中C++?
- int* 和 int[] 类型对二进制运算符 + 的操作数无效
- 比较两个整数在C++中与未知 int 类型的相等性
- 二进制'operator+' 'int*'和'int*'类型的无效操作数
- 使用元编程选择 int 类型,将生成错误
- 从数组创建 Mat 时,'cv::Mat' 和 'int' 类型不兼容
- 复制初始化 - 从 'int' 类型转换为非标量类型
- 初始化cv :: mat ::具有int类型的定义大小的人
- 处理代码重新定义int类型(uint16_t,int16_t等),并不喜欢它
- 为什么没有"int"类型声明时输出不同?
- 在大型程序中将长变量更改为 int 类型
- 无法将 int 类型转换为时间类型(我的类类型)
- C++:无法在按位函数后将 int 类型设置为非标量
- 无法分配给INT类型的成员[10]
- C++ cin 将字符串读取到 int 类型中返回 0
- 为什么 decltype((i)) 是引用类型,而 decltype(i+0) 是 int 类型
- 使用4用于循环的4矩阵上的数组下标的“ int [int]类型”
- std::is_arithmetic 为通用 lambda 中的 int 类型返回 false:未定义的行为?
- 正在施放带有“ Int”类型的临时性