我试过这个例子:/* itoa example */#include <stdio.h>#include <stdlib.h>int main (){ int i; char buffer [33]; printf ("Enter a number: "); scanf ("%d",&i); itoa (i,buffer,10); printf ("decimal: %s\n",buffer); itoa (i,buffer,16); printf ("hexadecimal: %s\n",buffer); itoa (i,buffer,2); printf ("binary: %s\n",buffer); return 0;}但是该示例不起作用(它说该功能itoa不存在)。
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 关注
- 532 浏览
添加回答
举报
0/150
提交
取消