#include <stdio.h> #include <stdlib.h> #include <conio.h>void main( void ) { char szStr[ ] = "736B79626F6F6B"; char szStr1[ 100 ] = { 0 }; for ( int i = 0; i < 7; i++ ) { int x = 0; sscanf( szStr + i * 2, "%2x", &x ); szStr1[ i ] = x; } printf( "%s\n", szStr1 ); getch( ); }
int hex2i(char a) { if (a >= '0' && a <= '9') return a - '0'; else if (a >= 'A' && a <= 'F') return (a - 'A' + 10); else if (a >= 'a' && a <= 'f') return (a - 'a' + 10); return 0; }string func(string const& a) { string r; for (size_t i = 0; i < a.size(); i += 2) { unsigned int b = hex2i(a[i]) * 16 + hex2i(a[i + 1]); r += char(b); } return r; }void main(int a){ string e = func("FB56"); } 楼主是这个意思吧? 返回了7个字符。
#include <stdlib.h>
#include <conio.h>void main( void )
{
char szStr[ ] = "736B79626F6F6B";
char szStr1[ 100 ] = { 0 };
for ( int i = 0; i < 7; i++ )
{
int x = 0;
sscanf( szStr + i * 2, "%2x", &x );
szStr1[ i ] = x;
}
printf( "%s\n", szStr1 );
getch( );
}
{
if (a >= '0' && a <= '9')
return a - '0';
else if (a >= 'A' && a <= 'F')
return (a - 'A' + 10);
else if (a >= 'a' && a <= 'f')
return (a - 'a' + 10);
return 0;
}string func(string const& a)
{ string r;
for (size_t i = 0; i < a.size(); i += 2)
{
unsigned int b = hex2i(a[i]) * 16 + hex2i(a[i + 1]);
r += char(b);
} return r;
}void main(int a){ string e = func("FB56");
}
楼主是这个意思吧? 返回了7个字符。
strcpy(bb, "736B79626F6F6B");
sscanf(bb,"%2x%2x%2x%2x%2x%2x%2x", &aa[0], &aa[1],&aa[2],&aa[3],&aa[4],&aa[5],&aa[6]);
char szStr[ ] = "736B79626F6F6B";
str.Format( "%2x%2x%2x%2x%2x%2x%2x", &szStr[ 0 ], &szStr[ 2 ], &szStr[ 4 ], &szStr[ 6 ], &szStr[ 8 ], &szStr[ 10 ], &szStr[ 12 ] );