求助:一个字符串问题?
输入一个字符串,内有数字和非数字字符,如:a123x456=4567?45at587将其中连续的数字作为一个整数,依次存放到一数组a中。例如:123存放在a[0],456存放在a[1],...统计共有多少个整数,并输出这些数。#include<stdio.h>
long fun(int a,int n)
{
int i;
for(i=1;i<=n;i++)
a*=10;
return a;
}
void main()
{
int i,j,k,count=-1;
long s,a[30],b[30];
char ch[30];
for(i=0;i<30;i++)
{a[i]=0;b[i]=0;}
printf("input a string:");
scanf("%s",ch);
i=j=k=0;
while(ch[i++])
j++;
for(i=j;i>=0;i--){
if(ch[i]>='0'&&ch[i]<='9'){
count=0;
s=0;
s+=ch[i];
i--;
}
while(ch[i--]){
if(ch[i]>='0'&&ch[i]<='9'){
count++;
s+=fun(ch[i],count);
}
else {
count=-1;
b[k++]=s;
i++;
break;
}
}
}
k=i=0;
while(1){
if(b[k]>9){
a[i]=b[k];
printf("%4d",a[i]);
}
if(b[k]==0)
break;
i++;
k++;
}
}
结果运行不正确,求教诸位!谁有更好的算法,我这算法太垃圾了!