C語言char*字符串數組和unsigned char[]數組的相互轉換

  • 2017-10-9 14:16
  • PHP二次開發
  • 閱讀(1655)
  • 評論(2
  • 來源:互聯網
  • 摘要: #include iostream#include stringusing namespace std;void convertUnCharToStr(char* str, unsigned char* UnChar, int ucLen){ int i = 0; for(i = 0; i ucLen; i++) { //格式化輸str,每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;  
    }  


    PHP技術交流QQ群:422137578

    除非注明,文章均為 PHP二次開發 原創,轉載請注明本文地址:http://www.fujvln.live/article-2659-1.html

    相關閱讀

    發表評論

    最新評論

    引用 qq斗地主   2019-3-30 09:30
    支持
    引用 掙錢網   2019-3-30 09:28
    吃螃蟹咯

    查看全部評論(2)

    用戶名:  *

    郵 箱:  *

    網 址: 注意加上“http://”哦!