输入
A123.1c34.df.1 456.78cpc876.9er 849.1
输出
123.1
1
456.78
876.9
849.1
直接代码
#include "stdio.h"
int CharToInt(char a){
return a-'0';
}
int PointLen(double f)
{
int i = 0,j=1;
while (i++, f != (int)f) f *= 10;
//return i-1;
for(i;i>0;i--)
j=j*10;
return j;
}
int main(void){
char aa[100]="A123.1c34.df.1 456.78cpc876.9er 849.1";
char *a=aa;
int i,num=0,flag_num=0,flag_point=0;
double b[20];
for (i=0;i<20;i++)
b[i]=0;
while(*a!='\0'){
if(*a>='0' && *a<='9'){
flag_num=1;
if(flag_point==1)
b[num] = b[num] + (double) CharToInt(*a)/(PointLen(b[num]));
else
b[num] = b[num]*10 + CharToInt(*a);
}else{
if(*a=='.'){
if(flag_num==1){
flag_point=1;
}
}else{
if(flag_num==1)
num++;
flag_num=0;
flag_point=0;
}
}
a++;
}
for(i=0;i<=num;i++)
printf("第%d个数为:%.4f\n",i,b[i]);
return 0;
}