Question:将一个int类型转换成字符串。函数原型:
const char* itoa(int val)
负数前面要添个负号,正数不用。
写了15min……
const char* itoa(int val)
{
char* s=(char*)malloc(35);
if(!s) return NULL;
int sign=val&0x80000000;
if(sign) val=-val;
int len=0;
do{
s[len++]=val%10+'0';val/=10;
}while(val);
if(sign) s[len++]='-';
char* result=(char*)malloc(35);
if(!result) return NULL;
int i;
for(i=0;i<len;i++) result[i]=s[len-i-1];
return result;
}
Q:你的int是多少位的?
A:(难道int不是都是32位的吗?)我的64位机上的int是32位的。
Q:你真的是按照32位来计算的吗?
(他把代码拿回来给我)
A:额。不是。差了4个0。(以前汇编写多了,都是16位寄存器,后遗症啊!)(注