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