通过递归调用把整数转换为字符串:
void itoa(int n,char s[],int i){
if(n<0){
s[i++] = '-';
n = -n;
}
if(n/10)
itoa(n/10,s,i++);
s[i] = putchar(n % 10 + '0');
s[i++] = '\0'; //每次都把下一个元素设置位'\0',若下一个元素存在,则会覆盖\0,否则,就是终止符。
}
int main(){
char s[100];
itoa(123,s,0);
printf("%s\n",s);
return 0;
}
注意对于终止符的处理,在每次递归中加入终止符,若递归未结束,则原先的终止符会被覆盖。