标题:
单片机C语言提取字符串函数的返回数值方法求助
[打印本页]
作者:
梦园心田
时间:
2018-12-22 20:01
标题:
单片机C语言提取字符串函数的返回数值方法求助
我想实现一个函数传入一个数组,在函数内部进行数据提取,把提取的数字进行整合成一个整数,并把结果返还给函数.
但是我编写的方法存在返回的结果多出02数字.
请求高手帮忙分析一下,或者分享一个,非常感谢.
串口数据.jpg
(12.64 KB, 下载次数: 62)
下载附件
2018-12-22 19:51 上传
//提取数字转成整数
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 ;
}
//主函数
mian(){
sprintf(BuffSrc,"%d",StrGetNum("A1")); //把数字转成字符串
UART0_Send_String(BuffSrc); //打印字符串到串口
UART0_Send_String("\r\n");
}
串口打印结果
加
加
加
102
作者:
yzwzfyz
时间:
2018-12-24 11:28
注意一下:
汉字,依编码格式的不同,有2、3、4个字节构成。至少是两个字节。
所以你必须用相应长度的变量才能读取它。
作者:
梦园心田
时间:
2018-12-25 01:13
我现在处理的又不是汉字
作者:
梦园心田
时间:
2018-12-25 01:15
而且我新定位一个数组然后判断是不是数字是就存进去,不是就不存,然后再处理成数字也不行
作者:
yzwzfyz
时间:
2018-12-25 12:29
明白了,你不是提取汉字编码,而是要提出混在汉字中的数字,是码?
“混在汉字中的数字”,也不是数字形式,它是ASCII码,是以字符形式存在的。
例如:108
是由:31H 30H 38H 组成的。
作者:
梦园心田
时间:
2019-2-11 00:50
是硬件问题,了买了5种蓝牙,有一种非常正常
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1