2016-05-17 19 views
-3

Ich möchte diese Zeichenfolge in boolean Array setzen. Jede Zeichenkette int ist eine Hex #.Wie kann ich String in Hex in c konvertieren?

Also dachte ich, ich könnte Buchstaben in 4-Bit-Binär # konvertieren, so dass sie 64 Bit Länge Array füllen können.

Ich habe schon versucht strtol(), atoi(), array = &inText, aber sie scheint nicht funktionieren.

char *inText = "123456ABCD132536"; //its 16 letters 

bool array[64]; 
+1

finde ich es, dass die Eingabe 'befremdlich [c] konvertieren Zeichenfolge in das Suchfeld hex' ergab * nein * Kandidaten, die bei diesem Unterfangen hilfreich waren. Das hast du probiert, oder? – WhozCraig

Antwort

1

Sie können strtol Funktion verwenden.

Von Manpages:

Die C-Bibliotheksfunktion long int strtol(const char *str, char **endptr, int base) wandelt den Anfangsteil der Zeichenfolge in str an einen long int Wert entsprechend der gegebenen Basis, die 2 zwischen sein muß und 36 einschließlich, oder der Sonderwert 0.

Erklärung Nachfolgend ist die Erklärung für strtol() Funktion.

long int strtol(const char *str, char **endptr, int base) Parameter str - Dies ist die Zeichenfolge, die die Darstellung einer integralen Nummer enthält.

endptr - Dies ist die Referenz auf ein Objekt vom Typ char *, deren Wert wird durch die Funktion auf das nächste Zeichen in str nach dem numerischen Wert gesetzt.

Basis - Dies ist die Basis, die zwischen 2 und 36 einschließlich, oder , dem besonderen Wert 0.

Rückgabewert Diese Funktion gibt die umgewandelte ganze Zahl als lang sein muss, int-Wert, sonst wird null zurückgegeben.

Grundsätzlich können Sie diese Funktion verwenden, wenn Sie eine Zeichenfolge in ein beliebiges Zahlensystem konvertieren möchten.

0
/*converting inText character into Hex and adding into array*/ 
for(i=0, j=0; i < strlen(inText); i++, j+=2) 
{ 
    sprintf((char*)array + j, "%2X", inText[i]); 
} 
array[j]='\0'; /*adding NULL in the end*/ 

Wo %2X zu einem Zeitpunkt 2 Zeichen nimmt, konvertieren diese 2-Zeichen zu einem Hex-Wert,