我想做一個程序,用戶輸入一個十六進制字符串(「格式3ecf,沒有0x和沒有首都」)下面的代碼是我試圖複製用戶輸入(地址)並將其二進制等價物存儲在binAddress中。十六進制字符串到二進制字符串
我該如何解決這個問題?
或者有更簡單的方法嗎?
char address [6];//global
char binAddress[24]; //global
scanf("%s", address); //in some other function
...
void hexToBin(){
int i = 0;
int j = 24;
int z;
while(address[i]){
char x[4]; //strcpy(char x, "0000")
switch(address[i]){
case '0': strcpy(x, "0000"); break;
case '1': strcpy(x, "0001"); break;
case '2': strcpy(x, "0010"); break;
case '3': strcpy(x, "0011"); break;
case '4': strcpy(x, "0100"); break;
case '5': strcpy(x, "0101"); break;
case '6': strcpy(x, "0110"); break;
case '7': strcpy(x, "0111"); break;
case '8': strcpy(x, "1000"); break;
case '9': strcpy(x, "1001"); break;
case 'a': strcpy(x, "1010"); break;
case 'b': strcpy(x, "1011"); break;
case 'c': strcpy(x, "1100"); break;
case 'd': strcpy(x, "1101"); break;
case 'e': strcpy(x, "1110"); break;
case 'f': strcpy(x, "1111"); break;
default: strcpy(x, "0000"); break;
}
i++;
for (z = 3; z > -1; z--){
binAddress[j] = x[z];
j--;
printf("%c\n", binAddress[j]);
}
}
}
閱讀[問],提供一個[mcve]。代碼不完整。 – Olaf
'char x [4];' - >'char x [5];' – BLUEPIXY