如何将字符串“7E8E9EADAAAAAAAAAAAAAAAAAAAAAAA00010D”转化成16进制的相同数字7E 8E 9E AD AA AA AA AA AA AA AA AA AA AA AA A0 00 0D

解决方案 »

  1.   

    strtol好像每次只能转化7个字节啊,不能一下子全部转化吧
      

  2.   


    CString str = "7AAA10008E9D";
    int len = str.GetLength();
    char buffer[32];
    memset(buffer,0,32);
    memcpy(buffer,LPCTSTR(str),len);buffer中的值即为7 A A A 1 0 0 0 8 E 9 D
      

  3.   

    int
    parse( char *strtext, unsigned char *binbuf )
    {
    size_t l = strlen( strtext );
    int thelen = 0;
    size_t i;
    unsigned char a;
    unsigned short t;
    for( i = 0; i < l; i++ )
    {
    if( ( strtext[ i ] >= '0' && strtext[ i ] <= '9' ) ||
    ( strtext[ i ] >= 'A' && strtext[ i ] <= 'F' ) ||
    ( strtext[ i ] >= 'a' && strtext[ i ] <= 'f' ) )
    {
    if( strtext[ i ] >= '0' && strtext[ i ] <= '9' )
    a = strtext[ i ] - '0';
    if( strtext[ i ] >= 'A' && strtext[ i ] <= 'F' )
    a = strtext[ i ] - 'A' + 10;
    if( strtext[ i ] >= 'a' && strtext[ i ] <= 'f' )
    a = strtext[ i ] - 'a' + 10; thelen++; if( thelen % 2 ) //如果是第奇数个1,3,5
    {
    t = a;
    }
    else
    {
    t <<= 4;
    t += a;
    *( binbuf + ( thelen / 2 ) - 1 ) = ( unsigned char )t;
    }
    }
    }
    return thelen / 2;
    }
      

  4.   

    unsigned char buf[ 100 ];
    int len;len = parse( "7E8E9EADAAAAAAAAAAAAAAAAAAAAAAA00010D", buf );
    buf中存放的就是0x7e, 0x8e, 0x9e, 0xad
      

  5.   

    谢谢jennyvenus ,问题解决了。