c語言itoa
發布時間: 2022-09-04 05:35:41
A. c語言 編寫函數itoa(int n,char *p)
有2種方式實現,其中兩種是使用系統函數,另一種是直接自己編寫。
下面的代碼就是2種方式的實現,包括任意整數(2的31次方以內)都可以。可自己選擇需要的實現方式。
1. 利用系統函數。sprintf(str,"%d",value);str是轉化存儲的位置,%d表示十進制格式,value是要轉化的數字。所以代碼可以為:
char*itoa(intn,char*p)
{
sprintf(p,"%d",n);
return(p);
}
2. 自己編寫。由於計算方法是每次都除以10和對10取余數,余數以倒序的順序排列就是結果,所以最佳方法是用遞歸函數(當然循環也可以,但需要最後再進行倒序)。遞歸代碼如下:
staticinti=0;
char*itostr(intn,char*p)//遞歸函數
{
if(n<10)//遞歸結束條件
{
p[i]=n+'0';//當前數轉換成字元放入字元串
}
else
{
itostr(n/10,p);//遞歸調用
i++;//字元串索引+1
n%=10;//計算當前值
p[i]=n+'0';//當前數轉換成字元放入字元串
}
p[i+1]='