3 回答

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
自己制作itoa也很容易,請(qǐng)嘗試以下操作:
char* itoa(int i, char b[]){
char const digit[] = "0123456789";
char* p = b;
if(i<0){
*p++ = '-';
i *= -1;
}
int shifter = i;
do{ //Move to where representation ends
++p;
shifter = shifter/10;
}while(shifter);
*p = '\0';
do{ //Move back, inserting digits as u go
*--p = digit[i%10];
i = i/10;
}while(i);
return b;
}
或使用標(biāo)準(zhǔn)sprintf()功能。

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
用途sprintf():
int someInt = 368;
char str[12];
sprintf(str, "%d", someInt);
可以用表示的所有數(shù)字都int將適合12個(gè)字符的數(shù)組,且不會(huì)溢出,除非您的編譯器以某種方式使用了32位以上的int。當(dāng)使用更大位數(shù)的數(shù)字時(shí),例如long,在大多數(shù)64位編譯器中,您需要增加數(shù)組大小-對(duì)于64位類型,至少要增加21個(gè)字符。
- 3 回答
- 0 關(guān)注
- 575 瀏覽
添加回答
舉報(bào)