博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ Studio (二) ----- atoi()函数的实现 (自己编写功能)
阅读量:7022 次
发布时间:2019-06-28

本文共 1752 字,大约阅读时间需要 5 分钟。

上一篇博客讲的是atoi()函数的功能及举例,现在呢,就自己写写代码(根据atoi()的功能)来表示atoi()函数的实现。我在这里先把atoi()函数的功能贴出来,也好有个参考啊~~~

    atoi()函数的功能:将字符串转换成整型数;atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回(返回转换后的整型数)。

    atoi()函数实现的代码:

  

1 /*  2 * name:xif  3 * coder:xifan@2010@yahoo.cn  4 * time:08.20.2012  5 * file_name:my_atoi.c  6 * function:int my_atoi(char* pstr)  7 */   8    9 int my_atoi(char* pstr)  10 {  11     int Ret_Integer = 0;  12     int Integer_sign = 1;  13       14     /* 15     * 判断指针是否为空 16     */  17     if(pstr == NULL)  18     {  19         printf("Pointer is NULL\n");  20         return 0;  21     }  22       23     /* 24     * 跳过前面的空格字符 25     */  26     while(isspace(*pstr) == 0)  27     {  28         pstr++;  29     }  30       31     /* 32     * 判断正负号 33     * 如果是正号,指针指向下一个字符 34     * 如果是符号,把符号标记为Integer_sign置-1,然后再把指针指向下一个字符 35     */  36     if(*pstr == '-')  37     {  38         Integer_sign = -1;  39     }  40     if(*pstr == '-' || *pstr == '+')  41     {  42         pstr++;  43     }  44       45     /* 46     * 把数字字符串逐个转换成整数,并把最后转换好的整数赋给Ret_Integer 47     */  48     while(*pstr >= '0' && *pstr <= '9')  49     {  50         Ret_Integer = Ret_Integer * 10 + *pstr - '0';  51         pstr++;  52     }  53     Ret_Integer = Integer_sign * Ret_Integer;  54       55     return Ret_Integer;  56 }

 

  

 

    现在贴出运行my_atoi()的结果,定义的主函数为:int  main  ()

  

   

1 int main()   2 {   3     char a[] = "-100";   4     char b[] = "456";   5     int c = 0;   6        7     int my_atoi(char*);    8    9     c = atoi(a) + atoi(b);  10       11     printf("atoi(a)=%d\n",atoi(a));  12     printf("atoi(b)=%d\n",atoi(b));  13     printf("c = %d\n",c);  14   15     return 0;  16 }

 

 

    运行结果:

 

转载于:https://www.cnblogs.com/dudu580231/p/4821954.html

你可能感兴趣的文章
Redhalt配置Centos的yum源 详细步骤
查看>>
WDS部署服务之二镜像导入
查看>>
CVE-2017-5715(分支预取)/CVE-2017-5753(边界检查)
查看>>
『关于博客的一些信息』
查看>>
metasploit获取shell之后进一步利用!metasploit+sessions
查看>>
我的友情链接
查看>>
MySQL中优化sql语句查询常用的30种方法
查看>>
C#实现RSA加密解密
查看>>
Linux系统上的任务计划相关命令at、crontab的使用方法
查看>>
内关联和外关联
查看>>
nginx + tomcat 架构中,error_page错误页面的设置
查看>>
文档的词频-反向文档频率(TF-IDF)计算
查看>>
mybatis-oracle批量插入数据的简单学习
查看>>
Linux 服务器免密登录
查看>>
安装exchange server 2010 sp2 遇到的问题
查看>>
设计模式笔记:单件模式(Singleton)
查看>>
Sql Server系列:事务完整性
查看>>
通过v$sqlarea和v$sql视图查找比较耗费资源的sql
查看>>
Windows下基于cwRsync的文件同步
查看>>
LVS简单介绍
查看>>