C ++ Char数组转换为Hex或char数组

时间:2010-12-23 05:33:46

标签: c++

我很感激有关C ++的专业建议。我有一个Char数组

     <unsigned char ch1[100];> 

数据(ASCII码)被填充(最多6或8个数组空间,其余为空)。我想处理数组中的有效位,只是将它们转换为Hex或再次转换为Char数组。我试过了

     <memcpy (ch1,ch2,sizeof(ch1))>

但所有垃圾值也被复制..... :(

       <strcpy gives me an error>

复制的字节数也是动态的(1次: - 4; 2次: - 6 .....)

2 个答案:

答案 0 :(得分:0)

所以只复制实际初始化的字符。作为程序员,负责跟踪已初始化的内容和未初始化的内容。

答案 1 :(得分:0)

您知道阵列中有多少有效字节?如果是,您可以将该数字作为memcpy的第3个参数传递。

否则你可以对数组进行零初始化并使用strcpy,它将在第一个零点停止:

char ch1[100];
// zero out the array so we'll know where to stop copying
memset(ch1, 0, sizeof(ch1));

... data gets filled here ....

strcpy (ch2, ch1);
// zero out array again so we'll catch the next characters that come in
memset(ch1, 0, sizeof(ch1));

... life goes on ...