自寫函數實現數字與字符串之間的相互轉化,不使用itoa函數

一、自定義函數實現

思路:整數轉化爲字符串,可以採用加'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>
截圖如下



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章