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