首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

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

2013-11-29 
char型字符转16进制假如我有一串字符串,s“abcd123 abcd 123 ”里面包括了空格等等的,我现在想把他转成“616

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

热点排行