一、自定義函數實現
思路:整數轉化爲字符串,可以採用加'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>
截圖如下