当前位置: 代码迷 >> 单片机 >> char型字符转16进制,该怎么处理
  详细解决方案

char型字符转16进制,该怎么处理

热度:107   发布时间:2016-04-28 15:11:12.0
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;
}
  相关解决方案