69,373
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#define MAXLEN 10
char hex[MAXLEN];
char str[MAXLEN*3]="0A 01 23 45 2C 88";
int i,v,n,r;
char *p;
int main() {
i=0;
p=(char *)str;
while (1) {
r=sscanf(p,"%2x%n",&v,&n);
if (r==1) {
hex[i]=(char)v;
i++;
if (i>=MAXLEN) {
fprintf(stderr,"Too many bytes(>=%d)!\n",MAXLEN);
break;
}
p+=n;
} else if (r==EOF) {
break;
} else {
p++;
}
}
n=i;
for (i=0;i<n;i++) printf("0x%02X ",(unsigned char)hex[i]);
printf("\n");
str[0]=0;
for (i=0;i<n;i++) {
if (i>=MAXLEN) break;
sprintf(str,"%s %02X",str,(unsigned char)hex[n-1-i]);
}
printf("str:[%s]\n",str);
return 0;
}
//0x0A 0x01 0x23 0x45 0x2C 0x88
//str:[ 88 2C 45 23 01 0A]
//