模拟实现atoi函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模拟实现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;
}


以上是关于模拟实现atoi函数的主要内容,如果未能解决你的问题,请参考以下文章

模拟实现qsort atoi函数,小白快来看

模拟实现库函数的atoiatof和itoa

模拟实现atoi - 字符串中的数字字符转化为整形数

模拟实现atoi strncat strncpy(注释)

模拟实现atoi strncat strncpy(注释)

atoi()函数的原理分析和代码实现