C語言中實現itoa函數的實例
更新時間:2017年10月31日 10:51:38 作者:默伊清風
這篇文章主要介紹了C語言中實現itoa函數的實例的相關資料,希望通過本文能幫助到大家,讓大家實現這樣的功能,需要的朋友可以參考下
C語言中實現itoa函數的實例
一、原型:
char *itoa( int value, char *string,int radix);
二、函數說明:
- value:欲轉換的數據。
- string:目標字符串的地址。
- radix:轉換后的進制數,可以是10進制、16進制等。
三、函數簡單實現:
#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); //十進制負數 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) //是負數的話把負號先加入數組 *sp++ = '-'; while(tp > temp) *sp++ = *--tp; *sp = 0; return str; } int main() { long int num; int radix; //輸入的幾進制表示 char str[256]; cout<<"請輸入整數和進制數:"; cin>>num>>radix; My_itoa(num,str,radix); cout<<"整數轉換為字符串后:"; cout<<str<<endl; return 0; }
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
您可能感興趣的文章: