- #include <iostream>
- #include <string>
- using namespace std;
-
- void convertUnCharToStr(char* str, unsigned char* UnChar, int ucLen)
- {
- int i = 0;
- for(i = 0; i < ucLen; i++)
- {
-
- sprintf(str + i * 2, "%02x", UnChar[i]);
- }
- }
-
- void convertStrToUnChar(char* str, unsigned char* UnChar)
- {
- int i = strlen(str), j = 0, counter = 0;
- char c[2];
- unsigned int bytes[2];
-
- for (j = 0; j < i; j += 2)
- {
- if(0 == j % 2)
- {
- c[0] = str[j];
- c[1] = str[j + 1];
- sscanf(c, "%02x" , &bytes[0]);
- UnChar[counter] = bytes[0];
- counter++;
- }
- }
- return;
- }
-
- int main()
- {
- unsigned char src[6] = {0x12, 0x32,0x56,0x78,0x90,0xab};
- char buffer[20];
- convertUnCharToStr(buffer, src, 6);
- printf("%s\n", buffer);
-
-
- unsigned char dst[6];
- int len = strlen(buffer);
- cout << len << endl;
- convertStrToUnChar(buffer, dst);
-
- int i = 0;
- for(i = 0; i < 6; i++)
- {
- printf("%x ", dst[i]);
- }
- cout << endl;
-
-
- return 0;
- }
C语言char*字符串数组和unsigned char[]数组的相互转换
原文:http://www.cnblogs.com/dpf-learn/p/7580568.html