2010-12-23 22 views
0

Ich würde für einige C++ expertise Beratung zu diesem bitte zu schätzen wissen. Ich habe eine Char-ArrayC++ Char-Array-Konvertierung in Hex oder Char-Array

Daten (ASCII-Code) wird in diesem gefüllt (max 6 oder 8 Array-Räume und Ruhe ist leer). Ich möchte gültige Bits im Array nur entweder in Hex oder Char Array konvertieren. Ich versuchte

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

aber alle garbage Werte werden auch kopiert ..... :(

 <strcpy gives me an error> 

auch Anzahl der Bytes kopiert sind dynamisch (1mal: - 4; 2 Zeit: - 6. ....)

+0

Bitte näher auf die „gültigen Bits“. – Septagram

Antwort

0

Do yo Sie wissen, wie viele gültige Bytes Sie in Ihrem Array haben? Wenn ja, können Sie diese Nummer als drittes Argument von memcpy eingeben.

Ansonsten können Sie auf Null initialisieren Array und Verwendung strcpy, die auf den ersten Null stoppen:

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

Anzahl der kopierten Bytes sind dynamisch ändern sich ständig :( – user2829

+0

Ich würde ch1 101 Bytes dann sicherstellen, dass Sie immer einen '\ 0' Terminator haben. Sie nehmen auch an, dass die Eingabe kein '\ 0' Zeichen enthält. –

+0

so verwenden Der obige Code: null-initialisiert das Array, liest mit strcpy und setzt es dann wieder auf Null – martona

0

so kopieren Sie nur die Zeichen, die tatsächlich initialisiert. Sie als Programmierer sind verantwortlich für die Verfolgung, was initialisiert ist und was nicht.