函式
<stdlib.h>

itoa

char *  itoa ( int value, char * str, int base );
將整數轉換為字串(非標準函式)
使用指定的 base(基數)將一個整數 value 轉換為以空字元結尾的字串,並將結果儲存在由 str 引數指定的陣列中。

如果 base 是 10 且 value 是負數,則結果字串會以一個減號(-)開頭。對於任何其他 basevalue 總是被視為無符號數。

str 應該是一個足夠長的陣列,以容納任何可能的值(sizeof(int)*8+1),對於radix=2,即在 16 位平臺上需要 17 位元組,在 32 位平臺上需要 33 位元組。

引數

要轉換為字串的值。
str
記憶體中的陣列,用於儲存結果,即以空字元結尾的字串。
base
用於將 value 表示為字串的數字基數,介於236,其中10代表十進位制,16十六進位制,8八進位制,以及2二進位制之間。

返回值

一個指向結果字串(以空字元結尾)的指標,與引數str.

可移植性

此函式未在 ANSI-C 中定義,也不是 C++ 的一部分,但某些編譯器支援它。

在某些情況下,一個符合標準的替代方案可能是 sprintf
  • sprintf(str,"%d",value) 轉換為十進位制。
  • sprintf(str,"%x",value) 轉換為十六進位制。
  • sprintf(str,"%o",value) 轉換為八進位制。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* itoa example */
#include <stdio.h>
#include <stdlib.h>

int main ()
{
  int i;
  char buffer [33];
  printf ("Enter a number: ");
  scanf ("%d",&i);
  itoa (i,buffer,10);
  printf ("decimal: %s\n",buffer);
  itoa (i,buffer,16);
  printf ("hexadecimal: %s\n",buffer);
  itoa (i,buffer,2);
  printf ("binary: %s\n",buffer);
  return 0;
}

輸出
Enter a number: 1750
decimal: 1750
hexadecimal: 6d6
binary: 11011010110


另見