一、自定义函数实现
思路:整数转化为字符串,可以采用加'0',然后再逆序,整数加'0'就会隐性转化为char类型的数;
字符串转化为整数,可以采用减'0',再乘以10累加的方法,字符串减'0'就会隐性的转化为int类型的数。
参考地址:http://blog.chinaunix.net/uid-21372424-id-1748808.html
<span style="font-family:SimSun;font-size:18px;"> //***************************************************************
//实现数字到字符串的转化,不借助itoa函数
int num=12345,j=0,i=0;
char temp[7]={0},str[7]={0};//若不初始化则,需要加temp[j]=0和str[i]=0
while(num)
{
temp[j]=num%10+'0';
j++;
num/=10;
}
//temp[j]=0;
printf("temp=%s\n",temp);//倒序的字符串
j--;
while(j>=0)
{
str[i]=temp[j];
j--;
i++;
}
//str[i]=0;
printf("string=%s\n",str);//这里将其逆序,
i=0;
int num_str=0;
while(i<strlen(str))//字符型转化为整数
{
int mid=str[i]-'0';
num_str=num_str*10+mid;
i++;
}
printf("int num=%d\n",num_str);
//***************************************************************</span>
截图如下:二、扩展,使用itoa(),atoi()函数
(1)。itoa()函数
C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。
函数原型:char
*itoa(
int
value,
char
*string,
int
radix);
itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用 的基数。在上例中,转换基数为10。10:十进制;2:二进制...
(2)。atoi()函数
函数原型:int atoi(const char *nptr);
<span style="font-family:SimSun;font-size:18px;"> num=12345;
int i_strght=atoi(str);
printf("straight int=%d\n",i_strght);
char straight_char[7];
itoa(num,straight_char,10);
printf("straight char=%s\n",straight_char);</span>
截图如下