1. 程式人生 > >C語言char*字串陣列和unsigned char[]陣列的相互轉換

C語言char*字串陣列和unsigned char[]陣列的相互轉換

#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;  
}
點選開啟連結