A. c语言,从字符串中截取浮点数
#include <stdio.h>
main()
{
char s[]="2.39+2.39+1.22+8.9-9*7";
float a[4];
int i;
sscanf(s,"%f%f%f%f",&a[0],&a[1],&a[2],&a[3]);
for (i=0;i<4;i++) printf("%g ",a[i]);
return 0;
}
得:
2.39 2.39 1.22 8.9
B. 在C语言中怎样编写代码实现把浮点数转换成字符串
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#defineucharunsignedchar
#defineuintunsignedint
intpows(intx)
{
inty=1;
for(;x!=0;x--)
y=y*10;
returny;
}
voiddisplay_result(doubleresult)
{
if(result<0)
{
printf("-");
display_result(-result);
}
if(result>0)
{
doublei;
intx;
uinty;
i=1;
for(x=0;i>=1;x++)
i=result/pows(x+1);
for(;x!=0;x--)
{
y=((uint)(result/pows(x-1)))%10;
printf("%d",y);
}
printf(".");
i=result-(uint)result;
for(x=0;x<6;x++)
{
y=((uint)(i*pows(x+1)))%10;
printf("%d",y);
}
}
}
intmain()
{
doublenum;
scanf("%lf",&num);
printf("%lf ",num);
display_result(num);
return0;
}
(2)c语言字符串转浮点数扩展阅读
C++中将字符串转换成浮点数
#include<iostream>
#include<sstream>
#include<string>
使用命名空间std;
intmain()
{
std::stringstr=“3.14”;
std::stringstreamss(str);
浮动f;
ss>>f;
cout<<f+1;
返回0;
}
C. 在C语言中,怎么把一个字符串(都是由数字组成)转换成一个浮点数
上面的回答没有考虑到小数点,正确的思路应该是先找出小数点的位置,分为两段来处理。
D. C语言中有没有把字符转型化为 浮点型的函数
C语言中将字符串转型化为浮点型数据的函数有:atof()
和
strtod()
头文件:
#include <stdlib.h>
函数原型:
double atof (const char* str);
【参数说明】str 为要转换的字符串。
【函数说明】atof() 函数会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数str 字符串可包含正负号、小数点或E(e)来表示指数部分,如123. 456 或123e-2。
【返回值】返回转换后的浮点数;如果字符串 str 不能被转换为 double,那么返回 0.0。
double strtod (const char* str, char** endptr);
【参数说明】str 为要转换的字符串,endstr 为第一个不能转换的字符的指针。
【函数说明】strtod() 函数会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时('\0')才结束转换,并将结果返回。参数 str 字符串可包含正负号、小数点或E(e)来表示指数部分。如123. 456 或123e-2。
若endptr 不为NULL,则会将遇到的不符合条件而终止的字符指针由 endptr 传回;若 endptr 为 NULL,则表示该参数无效,或不使用该参数。
【返回值】返回转换后的浮点型数;若不能转换或字符串为空,则返回 0.0。
使用 atof( str ) 与使用 strtod(str, NULL) 结果相同。
一般应用方法为:
char str[]="123.45";
double d=atof(str);
printf("%.2lf", d ); //输出123.45
E. C语言里有没有函数可以把浮点型转化为字符串
charstr[10];
sprintf(str,"%.2f",12.34);
puts(str);
F. C语言函数库 里有没有 把字符串转化为浮点数 的函数啊
可以采用库函数atof, 头文件为#include <stdlib.h>
函数名: atof
功 能: 把字符串转换成浮点数
用 法: double atof(const char *nptr);
实例:
#include<stdlib.h>
#include<stdio.h>
intmain()
{
double d;
char*str="12345.67";
d=atof(str);
printf("string=%sdouble=%lf\n",str,d);
return 0;
}
G. c语言字符串数组中有多个数字如何转化成浮点型数字
#include<stdlib.h>
#include"string.h"
函数:
double atof(const char* string)
如果几个数字之间有分隔符的话,你可以自己分离出来;库函数的话,char* strtoke(char *,const char*)
H. C语言字符串类型转换为整型或浮点怎么做
#include<stdio.h>
#include<sys/types.h>
#include<stdlib.h>//Onlyshecanresolvethisproblem
intmain(void)
{
char*str="4000000000";
int64_ta=0;
a=atoll(str);
printf("a=%lld ",a);
printf("a=%llu ",a);
}
a=886677774000000000
a=886677774000000000
I. C语言,编写一个模块函数,把字符串转换成浮点型数字
atof系统函数可以做到
J. c语言中怎么把 [字符(%c) 转成 [浮点型(%f)]]
一、c语言中数值型数据分为两大类:整型和浮点型
整型:char
int
short
long
浮点型:float(单精度)
double(双精度)
二、浮点型数据转存到字符串中
char
str[30];
//定义一个字符数组,来存储数据
double
d=123.456;
//定义一个浮点型变量d
sprintf(str,"%f",
d
);
//格式串同printf()格式要求
sprintf(str,"%.2f",
d
);
//保留两位小数,第三位四舍五入
三、整型数据转存到字符串中
char
str[30];
int
i=123;
sprintf(str,
"%d",
i
);
四、0-9之间的数据转为字符
c语言中,字符型数据在存储时,实际上存储的是字符的ascii值,字符'0'到'9'对应的ascii是连续的,其值为48-57,所以,0-9数值转为字符时,只需要加上'0'就可以了,如:
char
ch;
int
i;
i=1;
ch=i+'0'
;
printf("ch=%c
ascii=%d",
ch,
ch
);
//按%c输出,就是字符1,按%d输出就是ascii值49