/*
*
* 播布客教学视频_C学习笔记_9.1_整形转字符串
* author: syt<sytshanli@163.com>
* create date: 2014.11.29
*
* 1.一个字符数组中,代表结束字符串,使用“\0”
* 2.任意一个数的每位转换成对应的ascii,
* 再存放到buf数组中,同时保证最后一个元素是'\0'
* 3.取模操作,循环过程,得到逆序的序列
* 4.逆序变成正序,使用对调方法(j和i-1-j)
* 5.初值的重要性
*
*/
#include<stdio.h>
int main(void)
{
int num = 123;
char buf[10];
int i = 0; //一定要赋予初值
int j = 0;
/*
buf[0] = 'a'; //后面出现乱码,除非使用'\0'
buf[1] = '0'; //字符的结束
buf[2] = 'b';
buf[3] = '\0';
*/
/* 可以得到任意数字的逆序转换,但是太冗余
buf[0] = num % 10 + '0'; //依旧会得到乱码,除非加上48
num /= 10;
buf[1] = num %10 + '0';
num /= 10;
buf[2] = num %10 + '0';
buf[3] = '\0';
*/
printf("please input a num:\n");
scanf("%d",&num); //不要使用“\n”
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'; //最后一个i表示结束
/*num 123 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;
}