溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言中實現(xiàn)itoa函數(shù)的實例

發(fā)布時間:2020-10-05 21:40:03 來源:腳本之家 閱讀:276 作者:默伊清風 欄目:編程語言

C語言中實現(xiàn)itoa函數(shù)的實例

一、原型:

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

二、函數(shù)說明:

  1. value:欲轉換的數(shù)據(jù)。
  2. string:目標字符串的地址。
  3. radix:轉換后的進制數(shù),可以是10進制、16進制等。

三、函數(shù)簡單實現(xiàn):

#include <iostream> 
#include <string> 
using namespace std; 
 
char* My_itoa(int value,char str[],int radix) 
{ 
  char temp[33]; 
  char *tp = temp; 
  int i; 
  unsigned v; 
  int sign; 
  char *sp; 
  if(radix > 36 || radix < 1) 
    return 0; 
  sign = (radix == 10 && value < 0); //十進制負數(shù) 
  if(sign) 
    v = -value; 
  else 
    v = (unsigned)value; 
  while(v || tp == temp)       //轉化操作 
  { 
    i = v % radix; 
    v = v / radix; 
    if(i < 10) 
      *tp++ = i + '0'; 
    else 
      *tp++ = i + 'a' - 10; 
  } 
  if(str == 0) 
    str = (char*)malloc((tp - temp) + sign + 1); 
  sp = str; 
  if(sign)   //是負數(shù)的話把負號先加入數(shù)組 
    *sp++ = '-'; 
  while(tp > temp) 
    *sp++ = *--tp; 
  *sp = 0; 
 
  return str; 
} 
 
int main() 
{ 
  long int num; 
  int radix;   //輸入的幾進制表示 
  char str[256]; 
  cout<<"請輸入整數(shù)和進制數(shù):"; 
  cin>>num>>radix; 
  My_itoa(num,str,radix); 
  cout<<"整數(shù)轉換為字符串后:"; 
  cout<<str<<endl; 
 
  return 0; 
} 

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI