int数组到char指针

时间:2014-05-11 16:16:32

标签: c arrays pointers

我正在研究C并且我有一个问题..我正在用Mcrypt编写程序,而解密函数需要在char *指针处使用chipertext。 问题是chipertext充满了未知的ASCII符号.. 所以我用%d打印了chipertext,我得到了像这样的数字的chipertext ..

23 -83 -48 -36 -49 -26 -16 -42 101 111 127 -46 -10 -3 -33 110 -106 29 -112 123 -21 43 50 81 70 -101 -71 94 -63 -122 52 76

我的问题是..我把这个chipertext存储到int array[32] .. 如何将此int数组的内容复制到我的char *指针?

2 个答案:

答案 0 :(得分:0)

我认为最简单的解决方案是将您的密文存储在 char array [32] 中。

答案 1 :(得分:0)

如何将int数组复制到char数组:

int iarray[32];
char carray[sizeof(iarray)];

memcpy(carray, iarray, sizeof(iarray));

如果carray是指针而不是数组,则代码基本保持不变:

int iarray[32];
char *carray = addressOfSomeMemory;

memcpy(carray, iarray, sizeof(iarray));

但是,上面的代码假设您的数据存储为char打包到int s。相反,如果您的数据每charint存储一次,则需要更多代码:

for (int i = 0; i < 32; i++)
    *(carray+i) = (char)iarray[i];