求助c语言题的答案。

来源:百度知道 编辑:UC知道 时间:2024/05/06 12:07:37
输入一个字符串,包含数字和非数字字符,如:a123xy456qwe17960?302tab5876将其中连续的数字作为一个整数,依次存放到数组a中,将123放在a[0]中,456放在a[1]中,统计共有多少个整数,并输出这些整数。

/**分析字符串str,将其中包含的整数存入数组array中,max指示整数的最大个数,返回整数个数*/
int parse(char* str,int* array,int max)
{
int tmp,i,j=0;
for(i=0;str[i]!=0;i++)
{
//遇到数字,开始分析整数
if(str[i]<='9' && str[i]>='0')
{
//计算当前的整数
tmp=str[i]-'0';
for(i++;str[i]<='9' && str[i]>='0';i++)
{
tmp=tmp*10+(str[i]-'0');
}

//将当前整数存入数组
array[j++]=tmp;

//如果达到了最大个数max,则返回
if(j==max)return j;
}
}
return j;
}

这个函数我已测试过了,可以直接使用,祝你好运!

直接把每个字符判断大小,不小于0且不大于9的就是数字。