整型数据与字符串类型相互转化的一种实现方法

void itoa(char * buffer, int num, int length)
{
	int i = 0;
	int temp = num;
	
	if (temp == 0)
	{
		for (i = 0; i < length; i++)
		{
			buffer[i] = '0';
		}

		buffer[i] = 0;
	}
	else
	{
		if (temp < 0)
		{
			buffer[0] = '-';
			
			temp = -temp;
			
			++i;
		}
		else
			buffer[0] = '0';
		
		while(temp != 0)
		{
			temp /= 10;
			
			++i;
		}

		if (length > i)
			i = length;

		buffer[i] = 0;
		--i;
		temp = num;
		
		if (temp < 0)
			temp = -temp;

		while(temp != 0)
		{
			buffer[i] = temp % 10 + '0';
			
			temp /= 10;
			
			--i;
		}

		while( i >= 0 && buffer[i] != '-')
		{
			buffer[i] = '0';
			
			--i;
		}
	}
}

#ifndef __stdlib_h

int atoi(char * buffer)
{
	int i;
	int negative = 0;
	int result = 0;
	
	for (i = 0; buffer[i] == '0'; i++);
	
	if (buffer[i] == 0)
		return 0;
	else
	{
		if (buffer[i] == '-')
		{
			negative = 1;
			++i;
		}
		
		for (; buffer[i]; i++)
		{
			result *= 10;
			result += buffer[i] - '0';
		}
	}
	
	if (negative)
		result = -result;
		
	return result;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值