C语言算法小练习1——数字字符串转换为整数(不调用C语言库函数)

例:若输入字符串“1234”,则函数把它转化为整数值1234,输入“-1234”,则转化为整数值-1234.

算法思路:用字符数组存储输入的字符串,定义函数exchange,形参为指针类型(字符数组),对传入的字符串进行处理:
1.若为正数,则从第1个元素开始转化,若为负数,则从第二个元素开始转换。定义1个int型变量存储正负值。
2.转化字符类型为int型:1234可从1开始,每向后一移动一位就将当前元素乘10再加后面一个元素值。
如:int k = 0, i =0;
i = 0 时,字符数组元素s[i]=s[0]=1,k=010+1=1。
i = 1 时,字符数组元素s[i]=s[1]=2,k=1
10+2=12。
以此类推……
3.转换完成后,返回转换的整数值。

代码如下:

#include <stdio.h>
#include <string.h>
int main() {
	long n = 0;	//定义长整型变量用来存储转换后的整数
	char s[10];		//定义字符数组用来存储输入的字符串	
	gets(s);	//输入字符串
	n = exchange(s);		
	printf("%ld",n);
	return 0;
}
long exchange(char *a) {
	int c = 1;   //定义变量c存储转换后整数的符号	
	int k = 0;	//定义变量k表示转换的入口,若c=1,则从0开始,若c=-1,则从1开始
	long x = 0;
	int i = 0;
	if (a[0] == '-') { 
		c = -1;
		k = 1;
	 }    
	for(i=k;i<strlen(a);i++){
		x = x * 10 + (a[i] - 48);
	}
	return x*c;  //返回值为转换后的无符号数x与代表符号的整数c的乘积
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值