栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言之atoi实现(五十六)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言之atoi实现(五十六)

1.返回值是long long 类型
#include 
#include 
#include 
#include 
#include 

long long my_atoi(char *str){
	long long result = 0;
	int flag = 1;	
	
	while (*str != ''){
		
		if(*str == '-'){
			flag = -1;
			str++;
		}
		
		while(*str == '+'){
			flag = 1;
			str++;
		}

		while(*str == ' '){
			str++;
		}

		
		if(*str >= '0' && *str <= '9')
			result = result * 10 + ( *str - '0');
		else
			break;
		
		str++;
	}


	return result * flag;
}


int main(){
	char *str = "++++23 3442324323 42    fghi";
	long long ret = 0;
	
	//base
	// while(*str >= '0' && *str <= '9'){
	// 	ret = ret*10 + (*str - '0');
	// 	str++;
	// }


	ret = my_atoi(str);
	printf("ret = %ldn",ret);
}
2.返回值是int类型
#include 
#include 
#include 

int my_atio(char *str){
	int flag = 1;
	int ret = 0;

	while(*str != ''){
		if(*str == '-'){
			str++;
			flag = -1;
		}

		if(*str == ' ')
			str++;

		if(*str == '+')
			str++;

        if(*str > '9')
			str++;     

		if(*str >= '0' && *str <= '9'){
			ret = ret * 10 + (*str - '0');
			str++;
		}
			
	}

    //做个限制:int类型范围:1<<31 -1 -----  -(1<<31)
	if(ret > (1<<31 -1) || ret < (-(1<<31)))
		return 0;
	
	return ret * flag;
}

int main(){
	char *str = "12345674444444444444444444444";
	int ret = my_atio(str);
	printf("ret = %dn",ret);
	return(0);
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/932248.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号