温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在C语言项目中实现一个atoi函数

发布时间:2021-03-17 15:26:03 来源:亿速云 阅读:224 作者:Leah 栏目:编程语言

今天就跟大家聊聊有关怎么在C语言项目中实现一个atoi函数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

C语言模拟实现atoi函数的实例详解

atoi函数,主要功能是将一个字符串转变为整数,例如将“12345”–>12345。

1.指针为NULL
2.字符串为空字符串
3.空白字符
4.正号与负号问题
5.溢出问题
6.异常字符处理

接下来看代码:(具体几种问题处理都在代码的注释中说明)

#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <assert.h> //定义两个枚举常量来表示状态 enum STATE {   VALID, //合法   INVALID,//非法 }; enum STATE state = INVALID; int my_atoi(const char *str) {   int flag = 1;   long long ret = 0;//定义为比int存储范围还要大的类型,防止后面判断溢出时出错。   //空指针   assert(str);   //空字符串   if (*str == "\0")   {     return 0;   }   //空白字符   while (isspace(*str))//用函数isspace判断是否为空白字符   {     str++;   }   //遇到正负号   if (*str == '-')   {     flag = -1;     str++;   }   if (*str == '+')   {     str++;   }   //   while (*str)   {     //if (*str >= '0'&&*str <= '9')     if (isdigit(*str))//用函数isdigit判断是否为数字字符     {       ret = ret * 10 + flag*(*str - '0');       //判断是否溢出       if (ret > INT_MAX || ret < INT_MIN)       {         return ret;       }     }     //异常字符     else     {       break;     }     str++;   }   state = VALID;   return ret; } int main() {   char *p = "12345";   char *q = " -12345";   int ret = my_atoi(p);   int ret2 = my_atoi(q);   printf("%d\n", ret);   printf("%d\n", ret2);   system("pause");   return 0; }

运行结果:

怎么在C语言项目中实现一个atoi函数

看完上述内容,你们对怎么在C语言项目中实现一个atoi函数有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI