我想把這個字符串放入布爾數組中。每個字符的int字符串都是一個Hex#。我如何將字符串轉換爲十六進制的C?
所以我想我可以將字母轉換爲4位二進制#以便它們可以填充64位長度的數組。
我已經試過strtol(), atoi(), array = &inText
,但他們似乎不工作。
char *inText = "123456ABCD132536"; //its 16 letters
bool array[64];
我想把這個字符串放入布爾數組中。每個字符的int字符串都是一個Hex#。我如何將字符串轉換爲十六進制的C?
所以我想我可以將字母轉換爲4位二進制#以便它們可以填充64位長度的數組。
我已經試過strtol(), atoi(), array = &inText
,但他們似乎不工作。
char *inText = "123456ABCD132536"; //its 16 letters
bool array[64];
您可以使用strtol
函數。
從人的網頁:
C庫函數
long int strtol(const char *str, char **endptr, int base)
根據給定的基礎上,它必須是2之間的字符串在STR初始部分轉換爲長整型 值和36 (含),或者是特殊值0.聲明以下是關於
strtol()
函數的聲明。
long int strtol(const char *str, char **endptr, int base)
參數 str - 這是包含整數 數字表示的字符串。endptr - 這是參照類型char *的一個目的,其 值由功能 數值後設置爲下一個字符在str中。
基 - 這是鹼,其必須在2到36以下,或 之間是特殊值0
返回值該函數返回經轉換的整數作爲 長int值,否則返回零值。
基本上你可以使用這個函數,如果你想將字符串轉換成任何數字系統。
/*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*/
凡%2X
在同一時間需要2個字符,這些2個字符轉換爲十六進制值,
我覺得很令人不安的是打字'[C]字符串轉換中產生的搜索框中hex' *沒有*有助於這項工作的候選人。你試過了,對吧? – WhozCraig