目标,提取字符串 “1.23,-14.56”, “11.111, 1.1” 等的数字。包含两组数据,中间逗号分隔,范围 -999.0 ~ 999.0。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char str1[10];
char str2[10];
char str[] = "11.25,=-14.56=";
int len = strlen(str);
int i;
int n=0;
int num_dest[10];
int den_dest = 0;
int n1 = 0;
int n2 = 0;
float num1;
float num2;
memset(str1, '\0', 10);
memset(str2, '\0', 10);
for(i = 0; i < len; i++)
{
if((str[i] >= '0' && str[i] <= '9') || str[i] == '.')
{
num_dest[n] = i;
n++;
//printf("%d\n",i);
}
else if(str[i] == ',' && !den_dest)
{
den_dest = i;
}
}
for(i = 0; i < (sizeof(num_dest)/sizeof(num_dest[0]));i++)
{
if(num_dest[i] < den_dest)
{
str1[n1] = str[num_dest[i]];
n1++;
}
else
{
str2[n2] = str[num_dest[i]];
n2++;
}
}
num1 = atof(str1);
num2 = atof(str2);
printf("%s, %f\n",str1, num1);
printf("%s, %f\n",str2, num2);
return 0;
}
效果图