c语言字符串数组中有多个数字如何转化成浮点型数字
带e带-带小数点.求解如何将这些数字挨个提取出来并存储atof(constchar*string)函数只能将第一个数输出出来但是有多个数字怎么办?比如123667.235...
带e 带- 带小数点. 求解如何将这些数字挨个提取出来并存储
atof(const char* string)函数只能将第一个数输出出来 但是有多个数字怎么办?
比如 123 667.23 54e-2 展开
atof(const char* string)函数只能将第一个数输出出来 但是有多个数字怎么办?
比如 123 667.23 54e-2 展开
2个回答
展开全部
c语言, sscanf 可以转数值字符串 为 数值。
第2个数值起,定位用:“如果前一个字符是空白,后一个是数字,就是数的开始”
n -- 帮你统计个数,若想把数据存入数组,则可以用n为下标。
#include <stdio.h>
#include <stdlib.h>
main()
{
char str[100]="123 667.23 54e-2";
int i,L,n=0;
double y;
L = strlen(str);
if (sscanf(str,"%lf",&y)){ printf("%g ",y);n++;} // 取第一个数值
for (i=1;i<L;i++)
if (str[i]==' ' && (str[i+1]>='0' && str[i+1]<='9')) {
sscanf(&str[i+1],"%lf",&y);
printf("%g ",y);
n++;
}
printf("-- total %d data I have read\n",n);
return 0;
}
第2个数值起,定位用:“如果前一个字符是空白,后一个是数字,就是数的开始”
n -- 帮你统计个数,若想把数据存入数组,则可以用n为下标。
#include <stdio.h>
#include <stdlib.h>
main()
{
char str[100]="123 667.23 54e-2";
int i,L,n=0;
double y;
L = strlen(str);
if (sscanf(str,"%lf",&y)){ printf("%g ",y);n++;} // 取第一个数值
for (i=1;i<L;i++)
if (str[i]==' ' && (str[i+1]>='0' && str[i+1]<='9')) {
sscanf(&str[i+1],"%lf",&y);
printf("%g ",y);
n++;
}
printf("-- total %d data I have read\n",n);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询