標(biāo)題: 單片機(jī)C語(yǔ)言提取字符串函數(shù)的返回?cái)?shù)值方法求助 [打印本頁(yè)]

作者: 夢(mèng)園心田    時(shí)間: 2018-12-22 20:01
標(biāo)題: 單片機(jī)C語(yǔ)言提取字符串函數(shù)的返回?cái)?shù)值方法求助
我想實(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


作者: yzwzfyz    時(shí)間: 2018-12-24 11:28
注意一下:
漢字,依編碼格式的不同,有2、3、4個(gè)字節(jié)構(gòu)成。至少是兩個(gè)字節(jié)。
所以你必須用相應(yīng)長(zhǎng)度的變量才能讀取它。
作者: 夢(mèng)園心田    時(shí)間: 2018-12-25 01:13
我現(xiàn)在處理的又不是漢字
作者: 夢(mèng)園心田    時(shí)間: 2018-12-25 01:15
而且我新定位一個(gè)數(shù)組然后判斷是不是數(shù)字是就存進(jìn)去,不是就不存,然后再處理成數(shù)字也不行
作者: yzwzfyz    時(shí)間: 2018-12-25 12:29
明白了,你不是提取漢字編碼,而是要提出混在漢字中的數(shù)字,是碼?
“混在漢字中的數(shù)字”,也不是數(shù)字形式,它是ASCII碼,是以字符形式存在的。
例如:108
是由:31H 30H 38H 組成的。
作者: 夢(mèng)園心田    時(shí)間: 2019-2-11 00:50
是硬件問題,了買了5種藍(lán)牙,有一種非常正常




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1