自写函数实现数字与字符串之间的相互转化,不使用itoa函数

9 篇文章 0 订阅

一、自定义函数实现

思路:整数转化为字符串,可以采用加'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>
截图如下



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值