找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)C語言提取字符串函數(shù)的返回?cái)?shù)值方法求助

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:383374 發(fā)表于 2018-12-22 20:01 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
20黑幣
我想實(shí)現(xiàn)一個(gè)函數(shù)傳入一個(gè)數(shù)組,在函數(shù)內(nèi)部進(jìn)行數(shù)據(jù)提取,把提取的數(shù)字進(jìn)行整合成一個(gè)整數(shù),并把結(jié)果返還給函數(shù).
但是我編寫的方法存在返回的結(jié)果多出02數(shù)字.
請(qǐng)求高手幫忙分析一下,或者分享一個(gè),非常感謝.

//提取數(shù)字轉(zhuǎn)成整數(shù)
int StrGetNum(char *str) {
    int i = 0, j = 0;
    int n = 0;
    while(str !='\0')
    {
        while(*str >= '0' && *str <= '9')
        {
            n *= 10;
            n += *str - '0';
            UART0_Send_String("加\r\n");
           str ++;
        }
          str ++;
//       if(str =='\0')return        n        ;
    }
                return        n        ;
}
//主函數(shù)
mian(){
     sprintf(BuffSrc,"%d",StrGetNum("A1"));        //把數(shù)字轉(zhuǎn)成字符串
      UART0_Send_String(BuffSrc);  //打印字符串到串口
     UART0_Send_String("\r\n");
}
串口打印結(jié)果



102

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:123289 發(fā)表于 2018-12-24 11:28 | 只看該作者
注意一下:
漢字,依編碼格式的不同,有2、3、4個(gè)字節(jié)構(gòu)成。至少是兩個(gè)字節(jié)。
所以你必須用相應(yīng)長度的變量才能讀取它。
回復(fù)

使用道具 舉報(bào)

板凳
ID:383374 發(fā)表于 2018-12-25 01:13 來自觸屏版 | 只看該作者
我現(xiàn)在處理的又不是漢字
回復(fù)

使用道具 舉報(bào)

地板
ID:383374 發(fā)表于 2018-12-25 01:15 來自觸屏版 | 只看該作者
而且我新定位一個(gè)數(shù)組然后判斷是不是數(shù)字是就存進(jìn)去,不是就不存,然后再處理成數(shù)字也不行
回復(fù)

使用道具 舉報(bào)

5#
ID:123289 發(fā)表于 2018-12-25 12:29 | 只看該作者
明白了,你不是提取漢字編碼,而是要提出混在漢字中的數(shù)字,是碼?
“混在漢字中的數(shù)字”,也不是數(shù)字形式,它是ASCII碼,是以字符形式存在的。
例如:108
是由:31H 30H 38H 組成的。
回復(fù)

使用道具 舉報(bào)

6#
ID:383374 發(fā)表于 2019-2-11 00:50 來自觸屏版 | 只看該作者
是硬件問題,了買了5種藍(lán)牙,有一種非常正常
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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