模拟实现atoi函数

来源:互联网 发布:52单片机按键控制led灯 编辑:程序博客网 时间:2024/05/22 12:19

atoi函数可以将字符串中的数字以整数形式读出来

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include <ctype.h>#define INT_MAX 2147483647#define INT_MIN -2147483646//模拟实现atoi函数long long  my_atoi(const char *str){long long  ret = 0;//定义一个long long 类型防止数据溢出int p = 1;assert (str);while (isspace(*str))//检测空字符{str++;}if (*str=='-')//判断是否含有正负号{p = -1;str++;}else if (*str=='+'){;}else {return 0;}if (((ret*10 + p*(*str-'0'))>INT_MAX)||((ret*10 + p*(*str-'0')))<(INT_MIN))//判断是否溢出{printf("数据溢出\n");return 0;}while((*str)&&(isdigit(*str))){ret = ret*10 + p*(*str-'0');//将一个字符的数字转换为数字str++;}return ret;}int main (){char arr[] = "   -12#3";  long long  ret = my_atoi(arr); int  bat = atoi(arr) ; printf ("%d\n",bat);  printf ("ret = %ld\n",ret);  return 0;}

1 0
原创粉丝点击