char *AsciiToChar(char *asc,char str[]) //只转换大写
{
int i=0,n=0,len;
char cTemp[1024];
memset(cTemp,0x00,sizeof(cTemp));
strcpy(cTemp,asc);
len=strlen(cTemp);
for(i=0;i<len;i+=2)
{
if(('0'<=cTemp[i]&&cTemp[i]<='9')&&('0'<=cTemp[i+1]&&cTemp[i+1]<='9'))
str[n++]=(char)(cTemp[i]<<4|(cTemp[i+1]&0x0F));
else if('0'<=cTemp[i]&&cTemp[i]<='9'&&('A'<=cTemp[i+1]&&cTemp[i+1]<='F')
)
str[n++]=(char)(cTemp[i]<<4|(cTemp[i+1]-0x37));
else if(('A'<=cTemp[i]&&cTemp[i]<='F')&&('0'<=cTemp[i+1]&&cTemp[i+1]<='9'))
str[n++]=(char)(((cTemp[i]-0x37)<<4)|(cTemp[i+1]&0x0F));
else if(('A'<=cTemp[i]&&cTemp[i]<='F')&&('A'<=cTemp[i+1]&&cTemp[i+1]<='F'))
str[n++]=(char)(((cTemp[i]-0x37)<<4)|(cTemp[i+1]-0x37));
else
printf("your input is wronghttp://www.jozzz.com/http://www.51banyun.com!!");
}
str[n]='\0';
return str;
}
test:
int main()
{
char strin[1024];
int i;
memset(strin,0x00,sizeof(strin));
printf("%s\n",AsciiToChar("3132333435D6D0B6ABD6D0",strin));
exit(0);
}
unsigned char* hexStrToAsciiStr(unsigned char* din, unsigned char *dout, int len)
{
int i;
int c = 0;
for (i = 0; i < len; i += 2)
{
sscanf((const char *)din + i, "%02X", &c);
dout[i/2] = (unsigned char)(c & 0xFF);
}
return dout;
}