我很感激有关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 .....)
答案 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 ...