3 回答

TA贡献1866条经验 获得超5个赞
自己制作itoa也很容易,请尝试以下操作:
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;
}
或使用标准sprintf()功能。

TA贡献1786条经验 获得超13个赞
用途sprintf():
int someInt = 368;
char str[12];
sprintf(str, "%d", someInt);
可以用表示的所有数字都int将适合12个字符的数组,且不会溢出,除非您的编译器以某种方式使用了32位以上的int。当使用更大位数的数字时,例如long,在大多数64位编译器中,您需要增加数组大小-对于64位类型,至少要增加21个字符。
- 3 回答
- 0 关注
- 542 浏览
添加回答
举报