找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5086|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

c51單片機(jī)編程將數(shù)組轉(zhuǎn)化為字符串怎么編程?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:141281 發(fā)表于 2018-4-10 14:23 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
在51單片機(jī)中比如{1,2,3,4,5,6}轉(zhuǎn)化為“123456”這種字符串 怎么編程?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:637324 發(fā)表于 2020-2-24 21:01 | 只看該作者
樓主想把數(shù)組變成字符串干嘛用呢
(我在搜百度時(shí),發(fā)現(xiàn)我們論壇這個(gè)問(wèn)題也沒(méi)回答,所以就此發(fā)表一點(diǎn)個(gè)人見(jiàn)解)
我在lcd12864里:打印一串字符用         LCD12864_write_word(變量);
比如 LCD12864_write_word("00");
變量當(dāng)然可以是字符串       
那么我添加加如下代碼
u8 arry[5]={1,1,1,1,1};  //欲轉(zhuǎn)換的數(shù)組
u8 str[]="12345";          //原本的字符串
u8 i;
        for(i=0;i<5;i++){
        str[i] = arry[i] +0x30;
}
顯示 LCD12864_write_word(str);       
就變成了11111
一個(gè)數(shù)字0x30(十進(jìn)制48)是字符0,不明白的話搜下ascii碼表有幫助

回復(fù)

使用道具 舉報(bào)

板凳
ID:174087 發(fā)表于 2020-2-26 12:27 | 只看該作者
/*$PAGE*/
/*
*********************************************************************************************************
*                                       HexToStr
* Functions  : Hex轉(zhuǎn)字符串
*
* Arguments  : pSrc                 被轉(zhuǎn)換的Hex地址
*              pDst                 被轉(zhuǎn)換后的字符串地址
*              LimitLen             目的地址空間限制長(zhǎng)度  
*                       
* Returns    : 無(wú)
*********************************************************************************************************
*/
CPU_VOID HexToStr(CPU_VOID *pDst, CPU_VOID *pSrc, CPU_INT16U LimitLen)
{
    CPU_INT16U i = 0;
    CPU_INT08U ddl, ddh;
    CPU_INT08U *pSrcBuff = (CPU_INT08U*)pSrc;
    CPU_INT08U *pDstBuff = (CPU_INT08U*)pDst;
   
    CPU_INT16U ValidLen = LimitLen >> 1;
   
    for (i = 0; i < ValidLen; i++)
    {
        ddh = 48 + pSrcBuff[i] / 16;
        ddl = 48 + pSrcBuff[i] % 16;
        
        if (ddh > 57)
        {
            ddh = ddh + 7;
        }
        if (ddl > 57)
        {
            ddl = ddl + 7;
        }
        
        pDstBuff[i * 2] = ddh;
        pDstBuff[i * 2 + 1] = ddl;
    }
   
    if (LimitLen % 2 != 0)
        pDstBuff[LimitLen * 2] = '\0';
}
自用代碼,可以參考
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表