void invert(char* a, int start, int end)
{
for(;start<end;++start,--end)
{
char temp=a[start];
a[start]=a[end];
a[end]=temp;
}
}
int toint(char *str)
{
int result=0;
for(int i=0;str[i]!=0;++i)
{
result*=10;
result+=str[i]-'0';
}
return result;
}
char* tochar(int it)
{
char * temp=new char[1000];
int mod=10;
int left=it%mod;
int size=it/mod;
int i=0;
while(size!=0 || left!=0)
{
temp[i]=left+'0';
it/=10;
left=it%mod;
size=it/mod;
++i;
}
temp[i]=0;//注意最后补上终止符号0
invert(temp, 0, i-1);
return temp;
}
int _tmain(int argc, _TCHAR* argv[])
{
char str[1000];
scanf("%s", str);
int intresult=toint(str);
printf("%d\n", intresult);
char* strresult=tochar(intresult);
printf("%s\n", strresult);
delete []strresult;//注意是删除数组。
return 0;
}
1. 注意最后一个元素的赋值。也就是字符串结束标志的赋值。
2. delete []。注意删除动态开辟的内存区 。由于需要删除数组使用delete []strresult。