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';
}