itoa 库函数的实现

本文分享了一个atoi和itoa库函数的实现过程,并详细介绍了如何处理负数及字符串逆序的问题。作者通过实际代码展示了如何将整型数字转换为字符数组表示,并提供了测试用例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天写了一个atoi的库函数实现,感觉不错。今天接着写了一个itoa的库函数实现,鼓励自己加把劲,每天都有收获。希望您提出宝贵意见,大家一起成长。

下面是我的代码:


 #include<iostream>
using namespace std;


char *itoa_test(const int number ,char *tem);
void resver(char *start, char *end);    //字符串逆序 
//void  itoa_test(unsigned int number);  //一个简单的可以打印但是不能有返回值的转化函数
int main(void)
{
   char a[100];
   cout<<"input int number:"<<endl;
   int number;
   while(cin>>number)
   {
       cout<<itoa_test(number,a)<<endl;
	   cout<<"input int number: "<<endl;
   }
	return 0;
}
#if 0
void  itoa_test(unsigned int number)
{
	unsigned int tem;
	tem=number/10;
	if(0!=tem)
	itoa_test(tem);
	putchar(number%10+'0');
}
#endif


char *itoa_test(const int number ,char *str)
{
    int sign=0;
	int count=0;
	int tem=number;
	if(0==tem)   //判断输入为0 的情况
		str[count++]='0';
	else
	{
     	while(0!=tem)
		{
		  if(tem<0)
		  {
              sign='-';
			  tem=-tem;
			  str[count++]='-';
		  }
	      str[count++]=tem%10+'0';
		  tem=tem/10;
		}
	}
	str[count]='\0';
    if(sign)
	//	resver(&str[1],&str[count-1]);
	    resver(str+1,str+(count-1));
	else
       // resver(str,&str[count-1]);
	    resver(str,str+(count-1));
	return  str;
}


void resver(char *start, char *end)
{
     while(NULL!=start&&NULL!=end&&start<end)
	 {
		 char tem =*start;
		      *start=*end;
			  *end  =tem;
			  start++;
			  end--;
	 }
}



其中好主要做了对 '-' 的处理,输入是int 类型返回一个 char  数组。下面是测试用例:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值