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;  

  • 免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM