c語言 int double 數值轉成字串的方

時間 2021-10-17 02:37:57

1樓:風若遠去何人留

對於int型,可以呼叫函式itoa。

char*itoa(int value,char*string,int radix);

功能為將任意型別的數字轉換為字串。

int value 被轉換的整數,char *string 轉換後儲存的字元陣列,int radix 轉換進位制數,如2,8,10,16 進位制等。

float和double型別沒有特定的轉換函式。

不過不論是float, double還是int,都可以通過sprintf函式進行轉換。

sprintf類似於printf,都是按照格式化字串輸出引數到目標。不過printf是輸出到終端,而sprintf是輸出到第一個引數的字串中。

定義int i;

float f;

double d;

再定義字串空間

char buf[100];

呼叫sprintf(buf, "%d",i);

sprintf(buf, "%f",f);

sprintf(buf, "%lf",d);

就可以分別把int, float, double轉換成值對應的字串。

2樓:匿名使用者

itoa能把整數轉換為字串,但它不是c語言標準庫函式。

其實這麼簡單的問題,自己寫一個啦。

把int 的 1234 用取模逐位地取出來,跟 0~9 比較,再轉化為字元。

效率肯定比itoa低,但好歹能鍛鍊自己的實現能力。

3樓:

#include

#include

int main(void)

atoi: 把字串轉換成整型數

itoa:把整數轉換為字串

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

4樓:加百列

使用atof函式

copy。bai

一、描述:

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

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

double atof(const char *str)。

三、引數:

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

四、返回值:

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

例項演示**:

編譯執行效果如下:

5樓:匿名使用者

可以使用庫函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

與期望結果相同。

6樓:匿名使用者

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

c語言中如何將short,int,long,float這些型別的數值轉換為字串?

7樓:匿名使用者

可以使用sprintf函式轉換。

1、對於整型,各個平臺有一些函式可以專門轉換,比如itoa等。

不過更通用的做法是使用sprintf函式。

2、宣告:

int sprintf(char *dst, const char *format_string, ...);

標頭檔案為stdio.h。

3、功能:

sprintf是一個不定引數函式,根據format_string中提供的格式符,將後續引數轉為字串儲存在第一個引數dst中。

4、使用示例:

short a=1;

int b=2;

long c=3;

float d=4;

char buf[100];

sprintf(buf, "%hd %d %ld %f",a,b,c,d);//按照格式,將四個變數儲存在字串中。

執行後,buf中字串為"1 2 3 4.000000"。

格式字串使用方法與輸出函式printf相同。

8樓:匿名使用者

這些都是  整數  型的,所以把每一位拿出來放到char陣列裡面就好#include

#define len 20

int main()

for(i=0; i

9樓:匿名使用者

int i = 105:

char str[100] = ;

sprintf(str, "%d", i);

其他型別變數的方法類似

10樓:匿名使用者

用sprintf函式即可。例如

char s[20];

short a=35;

sprintf(s,"%d",a);就把s的值賦為「35」了。

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

11樓:匿名使用者

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

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

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

12樓:匿名使用者

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

13樓:匿名使用者

float ftemp;

不要後面bai

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

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

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

那就給你吧!

#include

void main()

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

14樓:程式猿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語言中a[10]="12345.56",怎麼把這字串原樣轉換為float型別

15樓:匿名使用者

#include

#include

main()

16樓:

可以自己寫一個函式,下面是我自己寫的,包含了必須的標頭檔案:

#include //strlen(),null#include //pow()

const double stringconverttofloat(char*str)

num=num*10+str[i]-'0';

}if (position!=0)

return num;

}返回值為float的話會丟失精度,所以用了double

c語言矩陣轉置問題

高山之澍 其實只是小問題,你自己都編的很好了。就是儲存螢幕不在按入q和enter鍵螢幕不會馬上消失上面有問題 你可以用兩個getchar 函式來讀取鍵盤輸入,前一個數緩衝enter鍵,後一個等待鍵盤輸入,然後螢幕消失!已修改,如下 include include define maxsize 20 ...

用C語言取數值的的中間值,用C語言取5個數值的的中間值

include stdio.h define count 5 void main int t count 2 printf d arra t 這個拿來幹嘛呢!lz 誰拿個錯的上來糊弄人啊!你既然搞了個count出來也不賦值,也不考慮多種情況! 看怎麼理解這個題目,取位置處於中間的一個數。偽碼是 if...

c語言程式設計實現23的矩陣轉置,C語言程式設計實現2 3的矩陣轉置

include iostream usingnamespacestd voidzhuangzhi inta 3 3 intm,n,i for m 0 m 2 m for i 0 i 3 i if m!1 i!0 n a i m a i m a m i a m i n intmain inta 3 3...