vc++编码问题!把十六进制字符串转换成文字!

问题描述:

假设我有一个cstring a="1A 2B" 如何转换成文字并赋值给另外一个cstring?

 char temp[100];
char src[100];
strncpy(src, (LPCTSTR)a, 100);

for (int i = 0; i < (a.GetLength() + 1)/3; i++)
{
    temp[i] = (char)(func(src[i * 3]) * 16 + func(src[i * 3 + 1]));
}
temp[i] = '\0';

 int func(char c)
{
    if (c >= 'A' && c <= 'F') return c - 'A' + 10;
        return c - '0';
}