把输入的字符串照常显示成16进制

来源:百度知道 编辑:UC知道 时间:2024/06/30 03:19:32
比如输入为CString类型的
CString str="f0f0235";
要把这写数转换成16进制显示成"\xf0\xf0\x02\x35"
最好是写个程序,自动获取str里的内容,然后自动转换

int char2int(char ch)
{
if(ch>='0' && ch<= '9') return (ch-'0');
if(ch>='a' && ch<= 'f') return (ch-'a'+0xa);
if(ch>='A' && ch<= 'F') return (ch-'A'+0xa);
return -1;
}

/*没处理非法字符,可以根据函数char2int()返回值处理*/
bool convert(char *dst, char *src)
{
char *p=src;
char *q=dst;
int len = strlen(src);

/*奇数长度,按右对齐方式处理*/
if(len%2)
{
*q++ = char2int(*p++);
}
while(*p)
{
*q = char2int(*p++) << 4;
*q |= char2int(*p++) & 0x0f;
q++;
}
return true;
}