输入一串字符串,如:“AT+23,56”,可分别提出23和56,输入格式是(提出位置,待提出字符串),返回的是数据格式;
/*----------------------------
//函 数 名:unsigned int Str_Num(char SS,unsigned char *s)
//功能描述:解析出字符串中的数字 -- 数组实现,返回数据
//C语言之从字符串中获取数字
----------------------------*/
unsigned int Str_Num(char SS,unsigned char *s)
{
char *begin;
unsigned char i,len,base=1,j=0,k=0;
unsigned int dat=0;
len=strlen(s); //获取字符长度
for(i = 0 ; i < len; i++)
{
if((*s >= '0')&&(*s <= '9')) //是数字时进入
{
if(j==0 && base==SS)
{
begin=s; //首地址
k++; //分割是数组计数
}
else if(j==0) //每次数字首位进入一次
{
base++;
k++; //分割是数组计数
}
if(k==SS) //相同位置数组提出数据
{
dat = dat*10 + *begin - '0';//这里同上
begin++;
}
j++; //数位计数
}
else j=0; //数位计数清零
s++;
}
return dat;
}