C语言char*字符串数组和unsigned char[]数组的相互转换

  • 2017-10-9 14:16
  • PHP二次开发
  • 阅读(54)
  • 评论(0)
  • 来源:互联网
  • 摘要: #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.php2.cc/article-2659-1.html

    相关阅读

    最新评论

    用户名:  *

    邮 箱:  *

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