模擬實現atoi函數

atoi函數就是把一串字符串轉換爲int型整數的函數,通過將字符串中的字符一個一個強制類型轉換,並且存入一個臨時數組中,再將數組中的數字處理一下即可得到我們需要的整數。

實現這個函數的過程中,我們需要注意負數的處理,要進行一次判斷,確定返回值的正負。

其他的字符按照ASCII碼錶進行轉換即可。

下面是代碼:

#include<stdio.h>
#include<math.h>

int my_atoi(char a[],int sz)
{
	int i = 0, count = 0, ret = 0, tcount = 0, pm = 1, sum[64];
	for (i = 0; i < sz; i++)
	{
		int tmp = (int)a[i];
		if (45 == tmp)
		{
			pm = 0;
			continue;
		}
		if (47 < tmp && 59 > tmp)
			sum[count++] = tmp - 48;
	}
	tcount = count--;
	for (i = 0; i < tcount; i++)
		ret+= (pow(10, count--))*(sum[i]);


	if (0 == pm)
		return ret*-1;
	else
		return ret;
}

int main()
{
	char a[] = "1233423144";
	int i = my_atoi(a,sizeof(a)/sizeof(a[0]));
	printf("%d\n", i);
	system("pause");
	return 0;
}


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