C語言char*字串陣列和unsigned char[]陣列的相互轉換
阿新 • • 發佈:2019-01-03
點選開啟連結#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++) { //格式化輸str,每unsigned char 轉換字元佔兩位置%x寫輸%X寫輸 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; }