c语言字符串数组中有多个数字如何转化成浮点型数字

带e带-带小数点.求解如何将这些数字挨个提取出来并存储atof(constchar*string)函数只能将第一个数输出出来但是有多个数字怎么办?比如123667.235... 带e 带- 带小数点. 求解如何将这些数字挨个提取出来并存储
atof(const char* string)函数只能将第一个数输出出来 但是有多个数字怎么办?
比如 123 667.23 54e-2
展开
 我来答
金色潜鸟
推荐于2016-03-29 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5538万
展开全部
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;
}
班加西2011
2013-04-03 · 超过32用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:76.8万
展开全部
#include<stdlib.h>
#include"string.h"

函数:
double atof(const char* string)

如果几个数字之间有分隔符的话,你可以自己分离出来;库函数的话,char* strtoke(char *,const char*)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式