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

  介绍

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

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

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

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

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

# define  _CRT_SECURE_NO_WARNINGS  1   # include  & lt; stdio.h>   # include  & lt; stdlib.h>   # include  & lt; ctype.h>   # include  & lt; assert.h>//定义两个枚举常量来表示状态   enum 状态   {   有效,才能,//合法   无效的,才能//非法   };   时间=enum  STATE  STATE 无效;   int  my_atoi (const  char  * str)   {   int 才能;flag =, 1;   long 才能long  ret =, 0;//定义为比int存储范围还要大的类型,防止后面判断溢出时出的错。//空才能指针   维护才能(str);//空才能字符串   if 才能;(* str ==,“\ 0“)   {才能   ,,,return  0;   ,,}//空才能白字符   while 才能;(isspace (str))//用函数isspace判断是否为空白字符   {才能   ,,,str + +;   ,,}//才能遇到正负号   if 才能;(* str ==, & # 39; & # 39;)   {才能   ,,,flag =, 1;   ,,,str + +;   ,,}   if 才能;(* str ==, & # 39; + & # 39;)   {才能   ,,,str + +;   ,,}   ,//while 才能;(str)   {才能   ,,,//if  (* str 祝辞=,& # 39;0 & # 39;,,* str  & lt;=, & # 39; 9 & # 39;)   ,,,if  (isdigit (str))//用函数isdigit判断是否为数字字符   ,,,{   ,,,,,ret =, ret  *, 10, +,国旗* (* str 作用;& # 39;0 & # 39;);   ,,,,,//判断是否溢出   ,,,,,if  (ret 祝辞,INT_MAX  | |, ret  & lt;, INT_MIN)   ,,,,,{   ,,,,,,,return 回收;   ,,,,,}   ,,,}   ,,,//异常字符   ,,,   ,,,{   ,,,,,休息;   ,,,}   ,,,str + +;   ,,}   state =,才能有效;   return 才能;回收;   }   int  main ()   {   char 才能;* p =,“12345”;   char 才能;* q =,,, -12345,,   int 才能;ret =, my_atoi (p);   int 才能;ret2 =, my_atoi (q);   ,,printf (“% d \ n",,随著;   ,,printf (“% d \ n",, ret2);   系统才能(“pause");   return 才能;0;   }

运行结果:

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

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

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