itoa 函式和sprintf 函式

2022-03-03 18:07:52 字數 1047 閱讀 5185

itoa 為c語言的乙個函式。itoa 函式是乙個廣泛應用的,從非標準擴充套件到標準的c語言。它不能被移植,因為它不是標準定義下的c語言,但是,編譯器通常在乙個不遵循程式標準的模式下允許其通過header ,因為它是乙個從邏輯對應到標準庫的函式。itoa 取整數輸入值,並將其轉換為相應進製數字的字串。

用法:itoa(i ,num ,10 );

i ---- 需要轉換成字串的數字

num ---- 轉換後儲存字串的變數

10 ---- 轉換數字的基數(即進製)。10就是說按10進製轉換數字。還可以是2,8,16等等進製型別

返回值:指向num這個字串的指標

itoa() 函式有3個引數:第乙個引數是要轉換的數字,第二個引數是要寫入轉換結果的目標字串,第三個引數是轉移數字時所用的基數(進製)。

度娘,傳送門:

itoa 並不是乙個標準的c函式,它是windows特有的,如果要寫跨平台的程式,要用sprintf。

itoa函式使用有風險,經常會wa,少用吧。

標準庫中有sprintf,功能比這個更強,用法跟printf類似:

char str[255];

sprintf(str, "%x", 100); //將100轉為16進製表示的字串。

sprintf指的是字串格式化命令,主要功能是把格式化的資料寫入某個字串中。sprintf 是個變參函式。使用sprintf 對於寫入buffer的字元數是沒有限制的,這就存在了buffer溢位的可能性。

度娘,傳送門:

sprintf函式的格式:int sprintf( char *buffer, const char *format [, argument,...] );

前兩個引數固定,可選引數任意。buffer是字元陣列名;format是格式化字串(像:"=%6.2f%#x%o",%與#合用時,自動在十六進製制數前面加上0x)。

只要在printf中可以使用的格式化字串,在sprintf都可以使用。其中的格式化字串是此函式的精華。

具體的看人家的部落格。。。

傳送門1:

傳送門2:

sprintf 和itoa 的區別

第一次原始碼 include include include define n 100 int main scanf s numstr for i 0 i strlen numstr i char sumstr 3 itoa sum,sumstr,16 for i 0 i strlen sumstr...

itoa函式和atoi函式

itoa是廣泛應用的非標準 c語言擴充套件函式。由於它不是標準c語言函式,所以不能在所有的 編譯器中使用。但是,大多數的編譯器 如windows上的 通常在標頭檔案中包含這個函式。功能 將任意型別的數字轉換為 字串。在中與之有相反功能的函式是 atoi。1 char itoa intvalue,ch...

itoa 函式和 atoi 函式

原型 int atoi const char str 功能 將字串轉化成int型整數 引數 將要轉化成整數的字串 返回值 返回轉化成int型的整數值 原型 char itoa int value,char buffer,int radix 功能 將整數轉化成字串 value 是要轉換的數字 buff...