直接上干货,没啥好说的:
代码1:十六进制转字符串函数
1 #include<stdio.h> 2 #include<string.h> 3 #include<ctype.h> 4 void Hex2Byte(const char* source, unsigned char* dest, int sourceLen) 5 { 6 short i; 7 unsigned char highByte, lowByte; 8 for (i = 0; i < sourceLen; i += 2) 9 { 10 highByte = toupper(source[i]); 11 lowByte = toupper(source[i + 1]); 12 if (highByte > 0x39) 13 highByte -= 0x37; //'A'->10 'F'->15 14 else 15 highByte -= 0x30; //'1'->1 '9'->9 16 if (lowByte > 0x39) 17 lowByte -= 0x37; 18 else 19 lowByte -= 0x30; 20 dest[i / 2] = (highByte << 4) | lowByte; 21 } 22 } 23 int main(){ 24 char src[200]="466c6f776572732061726520736f20696e636f6e73697374656e74212042757420492077617320746f6f20796f756e6720746f206b6e6f7720686f7720746f206c6f76652068652e\0"; 25 unsigned char buf[100]={ 0}; 26 Hex2Byte(src,buf,strlen(src)); 27 printf("%d\n",strlen(buf)); //打印一下生成十六进制字符串的长度 28 puts(buf); 29 return 0; 30 }
执行效果:
代码2:字符串转十六进制字符串函数
1 #include<stdio.h> 2 #include<string.h> 3 //字符串转十六进制字符串 4 void Str2Hex( const char *sSrc, char *sDest, int nSrcLen ) 5 { 6 int i; 7 char<