c語言字串型別轉換為整型或浮點怎麼做

時間 2021-08-30 10:54:16

1樓:

#include

double atof( const char *str );

功能:將字串str轉換成一個雙精度數值並返回結果。 引數str 必須以有效數字開頭,但是允許以「e」或「e」除外的任意非數字字元結尾。例如:

x = atof( "42.0is_the_answer" );

x的值為42.0.

#include

int atoi( const char *str );

功能:將字串str轉換成一個整數並返回結果。引數str 以數字開頭,當函式從str 中讀到非數字字元則結束轉換並將結果返回。例如,

i = atoi( "512.035" );

i 的值為 512.

2樓:匿名使用者

嫌麻煩就用  atoi,不然就自己編

比如:char a[5]="54321";

char a0=a[0];

int p=a0-'0';

p就等於5了,其餘類似,組在一起可以用 pow,不嫌麻煩自己編個m的n次方函式

3樓:滄海雄風

#include

#include

#include //only she can resolve this problem

int main(void)

a = 886677774000000000a = 886677774000000000

4樓:

大數的形式轉換,需要自己實現一個擴充套件方式。

前兩天剛幫另外一個人實現了一個100位以內十進位制數字符轉16進位制的實現:

#include

#include

#include

#define isdigit(c) ('0' <= (c) && (c) <= '9')

#define max_digi_num 100int _div_16(char *big_num, int *p_size)

num_size = *p_size;

if(num_size == 0 || num_size == 1)quo = malloc(num_size);

memset(quo,0,num_size);

while(num_size>0)

memcpy(big_num,quo,quo_size);

*p_size=quo_size;

free(quo);

return rem;

}int main()

;char num[max_digi_num+1] = ;

char hex[max_digi_num+1] = ;

int i,num_size,result;

printf("input dec num:");

scanf("%s",input);

memcpy(num,input,max_digi_num);

i = num_size = strlen(num);

if(i >= max_digi_num)while(i--)

num[i] = atoi(&num[i]);

while(num_size)

printf("hex num is 0x%s\n",tmp);}

5樓:

char d[5]=;

int i=0;

i = atoi(d);//再將字串轉成整形printf("%d\n", i);

輸出結果為12345

c語言怎麼能把字串轉化成浮點型資料?

6樓:加百列

使用atof函式

copy。bai

一、描述:

c 庫函式 double atof(const char *str) 把引數 str 所指向的字串轉換為一個浮

du點數(型別為 double 型)。zhi二、atof() 函式的宣告dao:

double atof(const char *str)。

三、引數:

str -- 要轉換為浮點數的字串。

四、返回值:

函式返回轉換後的雙精度浮點數,如果沒有執行有效的轉換,則返回零(0.0)。

例項演示**:

編譯執行效果如下:

7樓:匿名使用者

可以使用庫函bai數atof。

1 函式名

du atof

2 宣告

double atof(const char *nptr);

3 標頭檔案

#include

4 功能

zhi將引數nptr中的字串轉dao

為浮點型內資料並返回。容

5 需要注意的是,必須是合法的字串,即以實數形式或者科學計數法形式儲存的字串才可以進行轉換,否則轉換會出錯。 比如"sjdhk"這樣的字串是無法轉換為浮點數的。而如果是"1.

23sdf"這樣的形式,只會處理到最後一個數字,結果為1.23。

5 示例**

#include

int main()

輸出結果

c=-98.23

與期望結果相同。

8樓:匿名使用者

有的有此類的系統函式,加上標頭檔案#include ,使用atof()函式就行了

c語言浮點型轉換為整型怎麼轉換的?

9樓:匿名使用者

第一種是bai利用系統預設的轉換,du即將小數部分zhi截去dao,僅保留整數部分回,如3.6轉換答為3,-5.68轉換為5。

第二種是強制型別轉換,效果與第一種相同,如(int)(-6.666)為-6。

如有其他特殊要求,則需要程式設計解決。

10樓:匿名使用者

c語言中沒有四捨五入,將浮點型轉換成整形時,只保留小數點前面的數值

11樓:匿名使用者

float ftemp;

不要後面bai

的=0;因為一旦你分配du給ftemp了值,它zhi是無法通過dao鍵盤寫入的方式賦給

回的,因為空答間已經被佔用。這不是a=b+c這樣表示式的賦值。

暈,難道要我把源**給你你直接複製?

那就給你吧!

#include

void main()

隨便輸入一個數,然後回車,看結果

12樓:程式猿3號

c語言復有以下幾種取整方法:

1、直接制賦值給整bai

數變數。如:

int i = 2.5; 或 i = (int) 2.5;

這種du方法採用的zhi是捨去小數部分,能dao用於你的問題。

2、c/c++中的整數除法運算子「/」本身就有取整功能(int / int),而下面介紹的取整函式返回值是double。整數除法對正數的取整是捨去小數部分,能用於你的問題。不過整數除法對負數的取整結果和使用的c編譯器有關。

3、使用floor函式。floor(x)返回的是小於或等於x的最大整數。如:

floor(2.5) = 2

floor(-2.5) = -3

4、使用ceil函式。ceil(x)返回的是大於x的最小整數。如:

ceil(2.5) = 3

ceil(-2.5) = -2

floor()是向負無窮大舍入,floor(-2.5) = -3;ceil()是向正無窮大舍入,ceil(-2.5) = -2。floor函式能用於你的問題。

5、int b = (int)a;//取整int c = (int)(a+0.5);//四捨五入

c語言中如何把浮點型轉換為字元型

13樓:匿名使用者

一、抄c語言中數值型資料分為兩大類bai:整型和浮

點型du

整型:char int short long

浮點型:float(單精zhi度dao) 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' ;

按%c輸出,就是字元1,按%d輸出就是ascii值49

14樓:匿名使用者

浮點型轉換為字元抄型一般需要計算襲的,比bai如現在浮點型是414.15f

轉換du為字元型,zhi那麼就需要將這串資料dao轉換為ascii碼,單個數字單個數字轉換:

定義一個緩衝區:char buffer[6]用於存放這幾個數字;

接著:將浮點型放大,轉換為整型:(int)(414.15 * 100) = 41415d

逐個取值:

for(i=0;i<6;i++)

15樓:匿名使用者

和前bai面那個人

du說的

zhi一樣dao,**

內如下容:

#include

int main(void)

16樓:匿名使用者

sprintf(c,"%d",a);

c 如何將帶小數點的字串轉換為整型

intx int 一樓的方法一樣可行。補充說明 如果想要四捨五入的結果,這樣還不夠,我給的這個例子結果會是12.遵循四捨五入原則 string test1 string test2 int int1 int int2 在c 中,要將一個字串或浮點數轉換為整數,基本上有三種方法 1 使用強制型別轉換 ...

c語言中關於字串轉整型,C語言中關於字串轉整型

字串轉成整型可以使用atoi函式。函式原型 int atoi const char nptr 功能 把字串轉換成整型數。引數nptr字串,如果第一個非空格字元存在,是數字或者正負號則開始做型別轉換,之後檢測到非數字 包括結束符 0 字元時停止轉換,返回整型數。否則,返回零。include inclu...

c怎麼把byte陣列轉換為字串

實現位元組陣列至十六進位制字串轉換,這個操作在接收網路資料時非常有用,嘛,就一行,就一行,就一行 string str bitconverter.tostring bytes 司馬刀劍 有兩張方法 方法一 字串轉byte string stringmessage how are you?consol...