char型字符转16进制
假如我有一串字符串,s=“abcd123 abcd 123 ”里面包括了空格等等的,我现在想把他转成“616263643132332061626320313233”,这个字符串里面没有包含回车等等,只要对端给我穿过来的数据,我都要转成对应的hex值,这个有现成的函数没?或者说有方法没? 我想过如果定义一个a[127]={"1""2""3""4"、、、、、}等等,就是把每个字符都弄进去,然后我再定义一个b[127]={“31”“32”“33”“34”、、、、、、},然后把字符串s中的每一个字符,都逐一用for循环来对比
void SendStr(uchar array[n])
{
for(i=0;i<=n;i++) //检测是否字符串末尾, '\0'表示字符串结束标志,
for(x=0;x<127;i++)
{if (
a[x]==array[i];
array[i]=b[x];
)
SendByte(array[i]) ;
}
}
void SendByte(uchar dat)
{
SBUF = dat;
while(!TI);
TI = 0;
}
[解决办法]
本帖最后由 wangfan027 于 2013-11-28 10:02:39 编辑
char buf[128];
char * hextodstr(char * src)
{
unsigned char i=0;
while(*src!=0)
{
buf[2*i]=*src/16+'0';
buf[2*i+1]=(*src%16)+'0';
src++;
i++;
if(i>=64)
{
//缓冲区不够
return buf;
}
}
return buf;
}