2011-01-15 17 views
2

Ich habe versucht, dies zu tun, aber ich konnte keine gute Quelle dafür finden.C++ Char-Array zu Int und Int zu Char-Array

Grundsätzlich möchte ich eine char * Variable (Byte-Array) in ein int und umgekehrt konvertieren. Danke.

+2

Die Frage ist vage, da Sie nicht angeben, wie der Inhalt des Arrays verarbeitet werden soll. Es gibt mindestens drei Interpretationen, einschließlich Pointer-Casting, String-Konvertierung und Handhabung von Byte-Arrays als 8-Bit-Ganzzahlen. –

Antwort

1

folgende tun müssen, wenn Sie versuchen, ein Byte-Array in einen int konvertieren es ausreichend ist, eine reinterpret_cast zu verwenden. Technisch gesehen ist dies UB, aber wenn Sie wissen, dass die Bytes im richtigen Format sind, ergibt sich normalerweise genau das, wonach Sie fragen.

Dies ist während der Unterschied zwischen einem char * STRING und einem char * BYTE ARRAY.

2

Um von String zu Integer zu konvertieren, können Sie atoi Funktion und sprintf verwenden, um es in anderer Richtung zu tun.

UPDATE (siehe Kommentare):

als Sie

char *word = "Hello world"; 
int ints[11]; 
for(int i=0; i<strlen(word); ++i) 
     ints[i] = (int)word[i]; 
+0

Ich sprach von bitweisen Operatoren. Keine stringähnlichen Konvertierungen. – SBSTP

+1

Was meinst du? Ein Beispiel dafür, welche Art von Daten im char * enthalten sind und welche Art von int Sie erwarten, würde helfen. "Bitweise Operatoren" scheinen in diesem Fall keinen Sinn zu ergeben, daher muss die Frage unklar sein. –

+0

Nun, sagen wir, ich lese gerade 4 Bytes einer Datei. Sie sind in Char * gespeichert und ich möchte es zu einem Int machen. Und ich würde auch gerne einen int in einen char [4] verwandeln. Keine Umwandlung einer Zahl in einen numerischen Zeichenfolgenwert. – SBSTP