第1个回答 2012-04-21
#include<iostream>
#include<cstring>
using namespace std;
void int2str(unsigned long n,char* p)
{
if(n/10!=0)
{
*p++=n%10+'0';
int2str(n/10,p)
}
else //到了整数的第一位
{
*p=n%10+'0'; //第一位也要复制
}
}
int main()
{
unsigned long n=434562327;
char str[20]={0};
int2str(n,str);
int len=strlen(str);
for(int i=0;i<len/2;i++)
{
char c;
c=str[i];
str[i]=str[len-1-i];
str[len-1-i]=c;
}
cout<<str<<endl;
return 0;
}
第2个回答 2007-10-11
#include <iostream>
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<<buff<<endl;
return 0;
}本回答被提问者采纳
第3个回答 2007-10-12
#include<iostream.h>
#include<string.h>
void recursion(int num,char * recur,int flag)
{
if(flag==1)
{
*recur=num+48;
return;
}
else
{
*recur=num/flag+48;//取得数字的最高位字符表示
num=num%flag;//去处数字最高位
recur++;
flag=flag/10;
recursion(num,recur,flag);
}
}
void main()
{
long num;
int n=1;//数字有几位
int flag=1;
char * recur;
//cout<<"please input n:";
//cin>>n;
cout<<"input num:";
cin>>num;
int tempnum=num;
while(tempnum>9)
{
tempnum=tempnum/10;
n++;
}
recur =new char[n+1];
memset(recur,0,n+1);
char *temp=recur;//保存recur地址
for(int i=1;i<=n-1;i++)
flag=flag*10;//flag为输入数字的10^(n-1)
recursion(num,recur,flag);
recur=temp;
cout<<"num="<<recur<<endl;
delete []recur;
}