#include
using namespace std;
char* Convert(int n,char *strResult)
{
char *p = strResult;
if(n/10 != 0)
{
p = Convert(n/10,p);
}
*p = n%10 + '0';
++p;
*p = '\0';
cout<<*p;
return p;
}
int main()
{
int n = 12301236;
char buff[20];
Convert(n,buff);
cout<
}
这个应该不用递归,直循环就可以了,这是我的方法
int iNum;//用于保存你输入的数字
cin>>iNum;
char tmp[12];//用于保存逆向的字符串
char cRuslt[12];//用于保存结果
int i=10;
int j=0;//用于循环控制
while(1)
{
tmp[j]=(iNum%i)+48;
i*=10;
j++;
if(iNum/i==0)
{tmp[j]=='\0';break;}
}//循环完成后我们得到逆向的字符串
i=strlen(tmp);
for(j=0;j{
cRuslt[j]=tmp[i-j-1];
}
cRuslt[i-1]=='\0';
这样也可以,不用递归,开销会小很多
不过应该有更简单的方法
直接用C++提供的string类
int nNum;
cin>>nNUm;
string str;
str>>nNum;
cout<