C语言中带小数点的字符型数据怎么转换成浮点型的?

grance170553448 2011-01-04 06:46:22
比如字符型数据“-0.92,344.77”怎么转换成浮点型数据-0.92,344.77。请各位大侠帮帮忙,急啊。
...全文
1458 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuhex 2011-01-05
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;
int main()
{
char s[]="-23,434.343,2e-3,234e2";
char *p=strtok(s,",");
cout<<atof(p)<<endl;
while((p=strtok(NULL,","))!=NULL)
cout<<atof(p)<<endl;
}
首选用strtok按照‘,’把字符串里面的数据分开,分别提取每个字段的数据,然后使用atof()将字符串转换为double。
edwardliqi 2011-01-05
  • 打赏
  • 举报
回复
浮点就 atof
整数 atoi

貌似
grance170553448 2011-01-05
  • 打赏
  • 举报
回复
恩,明白。但是我要用到DSP里面,不用printf函数,直接给数组是不是也是一样的?
Thirty 2011-01-04
  • 打赏
  • 举报
回复
3L的是源码,好像c语言程序设计就有,要学习就看此源码

一般你用atof() 就行了
yuppy 2011-01-04
  • 打赏
  • 举报
回复
楼上高手...
無_1024 2011-01-04
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <conio.h>

int main()
{
char str[100];
gets(str);
double num = 0;
int i = 0;
double t = 10;
while(str[i] != '\0')
{
if( str[i] >= '0' && str[i] <= '9')
{
if( t == 10)
num = num * t + str[i] - 48;
else
{
num += ( str[i] - 48 ) * t;
t = t*0.1;
}
}
if( str[i] == '.' )
{
t = 0.1;
}
i++;
}
if( str[0] == '-' )
num = 0 - num;
printf("%lf\n",num);
//cout << num << endl;
return 0;
}
yuppy 2011-01-04
  • 打赏
  • 举报
回复

#include <stdlib.h>
double atof ( const char *s );
flysnowhite 2011-01-04
  • 打赏
  • 举报
回复
C语言有专门的库函数,用于字符串与数字间的转换。当然,也可以自己编程实现,在C程序语言设计-编程方法、K&R的C程序设计语言中都有介绍。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧