比方说;有一个字符串 char buf[10] = "ab68937420";
我想把他们放到 unsigned char num[5]中,使
num[0] = 0xab;
num[1] = 0x68;
num[2] = 0x93;
num[3] = 0x74;
num[4] = 0x20;
应该怎样写程序呢,方法有很多,下面给以一段我写的小例子:
//----------------------------------------------------------
#include <stdio.h>
#include <string.h>
int str_2_hex(char *str) {
int num = 0,i;
for(i=0;i<2;i++) {
num*=16;
if ( *str>='0' && *str<='9' ) num+=*str-'0';
else if ( *str>='a' && *str<='f' ) num+=*str-'a'+10;
else if ( *str>='A' && *str<='F' ) num+=*str-'A'+10;
str++;
}
return num;
}
int main(){
char buf[10] = "ab68937420";
char *p = buf;
int x[5];
int i,j=0;
for(i =0 ;i < 10;i+=2){
x[j]=str_2_hex(p);
printf("%x-",x[j]);
p = p + 2;
j++;
}
printf("\n------xxxxxxxxxx-------\n");
for(i =0 ;i < 5;i++){
printf("%x-",x[i]);
}
printf("\n-----***********--------\n");
return 0;
}
//----------------------------------------------------------
运行结果: