此题关键点有三:
1,需要先对输入的数取绝对值,以防求余的时候出错
2.判断输入数的正负,若是负数需要加上'-'.
3.字符串的最后需要加上'\0'
#include <iostream>
#include <stdio.h>
using namespace std;
void int2str( int n , char *str)
{
int tmp;
char buf[10];
int i = 0;
int len;
tmp = n<0? -n:n;
while(tmp)
{
buf[i++] = (tmp%10) +'0';
tmp = tmp/10;
}
if(n<0)
{
buf[i++] ='-';
}
len = i;
while(i)
{
i--;
str[i] = buf[len-i-1];
}
str[len] = '\0';
}
int main(int argc, char *argv[])
{
int nNum;
char p[10];
cout<<"Inpute a num:"<<endl;
cin>>nNum;
int2str(nNum , p);
cout<<p<<endl;
}