如何将int32_t放入字符数组中?(C++)

How do I put a int32_t into a char array? (c++)

本文关键字:数组 C++ 字符 int32      更新时间:2023-10-16

我该如何放:

int32_t x = someValue;

进入我的字符数组:

char * msg = new char[65546]();

任何帮助将不胜感激!

这完全取决于您希望在数组中存储值的方式。如果要逐字节存储,可以使用以下代码:

 int32_t x=someValue;
 char *ptr = (char*)&x;
 char *msg = new char[5];
 for(int i=0;i<4;++i, ++ptr)
    msg[i] = *ptr;

使用上述方法时应小心。因为有些系统使用大端序,而其他系统可能使用小端序。

另一方面,如果要将逐位存储到 char 数组中,请使用以下命令:

 int32_t x=someValue;
 int digs[12], count=0;
 char *msg = new char[12];
 while(x>0)
 {
     digs[count++]=x%10;
     x/=10;
 }
 int i=0;
 while(count--)
 {
     msg[i++] = digs[count] +'0';
 }

无论哪种方式都有效。但最好选择第二个。因为它很容易转换回整数。

如果你想打印值,为什么不直接打印呢?

std::cout << "x = " << x << 'n';
    char* msg = new char[123];
int32_t x = 123;
int offset = 0;
memcpy(msg + offset, reinterpret_cast<char*>(&x), sizeof(int32_t));