C語言中實(shí)現(xiàn)itoa函數(shù)的實(shí)例
更新時(shí)間:2017年10月31日 10:51:38 作者:默伊清風(fēng)
這篇文章主要介紹了C語言中實(shí)現(xiàn)itoa函數(shù)的實(shí)例的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
C語言中實(shí)現(xiàn)itoa函數(shù)的實(shí)例
一、原型:
char *itoa( int value, char *string,int radix);
二、函數(shù)說明:
- value:欲轉(zhuǎn)換的數(shù)據(jù)。
- string:目標(biāo)字符串的地址。
- radix:轉(zhuǎn)換后的進(jìn)制數(shù),可以是10進(jìn)制、16進(jìn)制等。
三、函數(shù)簡單實(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); //十進(jìn)制負(fù)數(shù)
if(sign)
v = -value;
else
v = (unsigned)value;
while(v || tp == temp) //轉(zhuǎn)化操作
{
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) //是負(fù)數(shù)的話把負(fù)號先加入數(shù)組
*sp++ = '-';
while(tp > temp)
*sp++ = *--tp;
*sp = 0;
return str;
}
int main()
{
long int num;
int radix; //輸入的幾進(jìn)制表示
char str[256];
cout<<"請輸入整數(shù)和進(jìn)制數(shù):";
cin>>num>>radix;
My_itoa(num,str,radix);
cout<<"整數(shù)轉(zhuǎn)換為字符串后:";
cout<<str<<endl;
return 0;
}
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
您可能感興趣的文章:
相關(guān)文章
C++實(shí)現(xiàn)LeetCode(107.二叉樹層序遍歷之二)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(107.二叉樹層序遍歷之二),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
C語言 volatile與const同時(shí)使用應(yīng)注意的問題
“volatile”的含義是“請不要做沒譜的優(yōu)化,這個(gè)值可能變掉的”,而并非“你可以修改這個(gè)值”。因此,它們本來就不是矛盾的2013-09-09

