2010-12-23 25 views
0

我希望对此有一些C++专家意见。我有一个字符序列C++字符数组转换为十六进制或字符数组

 <unsigned char ch1[100];> 

数据(ASCII码)在此填充(最多6个或8个数组空格,其余为空)。我想处理数组中的有效位,只是将它们转换为十六进制或再次将char数组。我试图

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

但所有无用值也将被复制..... :(

 <strcpy gives me an error> 

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

+0

请在“有效位”细说。 – Septagram 2010-12-23 05:37:54

回答

0

做哟你知道你在数组中有多少有效字节?如果是,则可以将该数字作为memcpy的第三个参数传递。

否则,你可以零初始化数组和使用的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 ... 
+0

复制的字节数是动态变化的:( – user2829 2010-12-23 05:45:10

0

所以只复制实际初始化字符。作为一个程序员负责跟踪什么初始化的,什么不是。

相关问题