#include<stdio.h>
int main ()
{
char *start;
char *end;
int i=0;
char arr[10]={0};
int n=0;
int j=0;
scanf("%d",&n);
if(n<0)
{
n=-n;
arr[0]='-';
j++;
}
start=&arr[j];
while(n)
{
arr[j]=n%10+'0';
n/=10;
j++;
}
arr[j]='\0';
end=&arr[j-1];
while(start<end) //逆置数组
{
char temp;
temp=*start;
*start=*end;
*end=temp;
start++;
end--;
}
printf("%s",arr);
return 0;
}
方法二
#include<stdio.h>
void change(char *start, char *end) //逆置数组
{
char temp;
while(start<end)
{
temp=*start;
*start=*end;
*end=temp;
start++;
end--;
}
}
void my_itoa(int n, char s[])
{
char *start;
char *end;
if(n<0)
{
*s='-';
n=-n;
s++;
}
start=s;
while(n)
{
*s=n%10+'0';
s++;
n/=10;
}
*s='\0';
end=s-1;
change(start, end);
return 0;
}
int main()
{
char arr[20];
int num=0;
scanf("%d",&num);
my_itoa(num,arr);
printf("%s\n",arr);
return 0;
}
转载于:https://blog.51cto.com/green906/1704703