2010-12-23 67 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

所以只複製實際初始化字符。作爲一個程序員負責跟蹤什麼初始化的,什麼不是。

相關問題