auto的函数实现

字符串转化成数字,c中有专门的函数aoti来实现,不使用aoti函数来实现的代码如下;还存在以下问题,1.当输入多个空白字符后在输入数字,就会有问题,在判断空白字符哪里加上循环,2.还有界限的问题,字符串可以输入很多,但int类型的取值范围是21474836482147483647[-2^312^31-1],还是有可能越界,3.如果输入的字符串是0,和我定义的错误返回值是一样的,就分辨不出来了

#include<stdio.h>
int reverstr (char* p);
void getchars(char* p,int l);
int main()
{
	char strNumber[1000];
	printf("please input number\n");
	getchars(strNumber,1000);
	int sum = reverstr(strNumber);
	printf("%d\n",sum);
	return 0;
}
void getchars(char* p,int l)
{
	fgets(p,l,stdin);
	int len=strlen(p);
	if(*(p+len-1) == '\n')
	{
		*(p+len-1) = '\0';
	}else
	{
		while(getchar() !='\0');
	}
}
int reverstr (char* p)
{
	if(p == NULL){return -1;}
	if(isspace(*p)){p++;}
	int flag=1,sum=0;
	if(*p == '-')
	{
		flag=-1;
		p++;
	}
	if(*p == '+' ){p++;}
	while(*p !='\0')
	{
		if(*p>='0'&& *p<='9')
		{
			sum = sum*10 +(*p-'0');
		}else{
			return sum*flag;
		}
	p++;
	}
return sum*flag;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值