方法一:#include
int main()
{
int num = 123;
char buf[10];
int i = 0;
int j = 0;
printf("input a number\n");
scanf("%d",&num);
printf("num = %d\n",num);
/*num 123 to string "321"*/
do
{
buf[i] = num % 10 + '0'; //取出个位数字
i++;
num /= 10;
}while(num != 0);
buf[i] = '\0'; //字符串最后加上一个'\0'
/*string "321" to string "123"*/
for(j = 0;j < i/2;j++) //翻转字符串,利用了交换法则中间变量
{
char tmp;
tmp = buf[i-1-j];
buf[i-1-j] = buf[j];
buf[j] = tmp;
}
printf("buf = %s\n",buf); //最后输出字符串
return 0;
}
方法二:#include
void swap(char* a,char* b)
{
char tmp;
tmp = *b;
*b = *a;
*a = tmp;
}
#define SWAP(a,b)\
do{ \
char tmp;\
tmp = b;\
b = a;\
a = tmp;\
}while(0)
void reverse(char buf[],int i)
{
int j = 0;
for(j = 0;j < i/2;j++)
{
//swap(&buf[j],&buf[i-1-j]);
SWAP(buf[j],buf[i-1-j]);
}
}
void itoa(int num,char buf[])
{
int i = 0;
/*num 123 to string "321"*/
do
{
buf[i] = num % 10 + '0';
i++;
num /= 10;
}while(num != 0);
buf[i] = '\0';
reverse(buf,i);
return;
}
int main()
{
int num = 123;
char buf[10];
int i = 0;
int j = 0;
printf("input a number\n");
scanf("%d",&num);
printf("num = %d\n",num);
itoa(num,buf);
printf("buf = %s\n",buf);
return 0;
}