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/liangliangdetianxia/p/4165037.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492692.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

盘点2018十大科技丑闻,IT相关两项

来源&#xff1a;科技日报2018这一年里&#xff0c;风起云涌的科技界很忙&#xff0c;有些人尝到了甜头&#xff0c;有些人却吃到了苦头&#xff0c;有些事件令人瞠目结舌、难以置信……   盘点2018年十大科技丑闻是为了更加清醒地看到科技发展过程中的不尽如人意。  更重要…

QT安装和Hello,world

QT安装环境介绍&#xff1a; https://blog.csdn.net/hechao3225/article/details/52981007 教程&#xff1a; http://c.biancheng.net/qt/ Hello,world简单示例&#xff0c;VS下编写纯代码的界面&#xff1a; http://c.biancheng.net/view/1824.html 第一步&#xff1a; 第二…

(转) 基于MapReduce的ItemBase推荐算法的共现矩阵实现(一)

转自&#xff1a;http://zengzhaozheng.blog.51cto.com/8219051/1557054 一、概述 这2个月为公司数据挖掘系统做一些根据用户标签情况对用户的相似度进行评估&#xff0c;其中涉及一些推荐算法知识&#xff0c;在这段时间研究了一遍《推荐算法实践》和《Mahout in action》&…

Waymo十周年:多尔戈夫讲述从被嘲笑到硕果累累

来源&#xff1a;TechCrunch 编译&#xff1a;网易智能十年前&#xff0c;大约十几名工程师聚集在谷歌位于查尔斯顿路上的山景城&#xff0c;为"司机项目"献力&#xff0c;这是该科技巨头的“X工厂”旗下的一个秘密项目。这个司机项目俗称“谷歌自动驾驶汽车项目”&a…

中国AI登上Nature子刊:看病历分析儿科疾病,准确率90%,超人类医师

铜灵 发自 凹非寺量子位 出品 | 公众号 QbitAIAI大夫的能力又精进了。以前的AI要想要辅助人类诊断&#xff0c;得先学会输入大量带标注的医学影像训练模型。现在不用了&#xff0c;AI只需读一读电子文字简历&#xff0c;就能具备病情分析能力。有产品有真相。最近&#xff0c;A…

当医疗遇上人工智能,你不可不知的未来医疗5大趋势

2015年&#xff0c;一部《超能陆战队》戳中了很多人的泪点&#xff0c;一个叫做“大白”的机器人更是萌化了无数人。在电影中&#xff0c;大白是一个融合人工智能、医疗救护、战斗能力的机器人&#xff0c;最大的任务就是守护。从医疗救护的角度来说&#xff0c;大白可以通过摄…

QT事件过滤器eventFilter函数

Qt的事件模型一个强大的功能是一个QObject对象能够监视发送其他QObject对象的事件&#xff0c;在事件到达之前对其进行处理。 假设我们有一个CustomerInfoDialog控件&#xff0c;由一些QLineEdit控件组成。我们希望使用Space键得到下一个QLineEdit的输入焦点。一个最直接的方法…

信息哲学给哲学带来根本性革命了吗

来源&#xff1a;中国科学报 摘要&#xff1a;信息哲学乃是区别于所有其他哲学的一种元哲学或最高哲学。由于信息哲学首先是在哲学的最高范式&#xff08;“存在领域的划分”&#xff09;层面引发的变革&#xff0c;所以信息哲学实现了人类哲学的第一次根本性转向&#xff0c;从…

蜜蜂会算术吗

来源&#xff1a;中国科学报大脑袋或许并不是做数学题所必需的。蜜蜂通过了一项可能要求其进行加减的算术测试&#xff0c;尽管有人质疑这是否是真的。在测试中&#xff0c;研究人员首先向蜜蜂展示了含有1~5种形状的图片。图形颜色全部是蓝色或黄色&#xff0c;蓝色代表“加1”…

人工智能:主导下一轮科技创新红利

来源&#xff1a;中信证券分析师&#xff1a;许英博、陈俊云前言&#xff1a;人工智能(AI)将接棒移动互联网&#xff0c;成为下一轮科技创新红利的主要驱动力。透过丰富的数据采集(互联网和IoT)、更快的数据传输(5G)、更强大的数据运算处理(AI)&#xff0c;科技企业和传统企业将…

AI药物全球100领军人物:43%来自学界 美英顶级AI专家人数最多

来源&#xff1a;网易智能近日&#xff0c;深度知识分析公司Deep Knowledge Analytics从最初的500名优秀候选人中&#xff0c;挑选出了“药物发现和先进医疗领域100大AI领军人物”。除非有新的“AI寒冬”来袭&#xff0c;并席卷科学探索领域&#xff0c;否则这100位科学家的工作…

机器学习算法集锦:从贝叶斯到深度学习及各自优缺点

来源&#xff1a;图灵人工智能目录正则化算法&#xff08;Regularization Algorithms&#xff09;集成算法&#xff08;Ensemble Algorithms&#xff09;决策树算法&#xff08;Decision Tree Algorithm&#xff09;回归&#xff08;Regression&#xff09;人工神经网络&#x…

MongoDB学习笔记-06 数据库命令、固定集合、GridFS、javascript脚本

介绍MongoDB支持的一些高级功能&#xff1a; 数据库命令 固定大小的集合 GridFS存储大文件 MongoDB对服务端JavaScript的支持 数据库命令 命令的原理 MongoDB中的命令其实是作为一种特殊类型的查询来实现的&#xff0c;这些查询针对$cmd集合来执行。runCommand仅仅是接受命令文…

汽车与智能家居互联时代 语音控制很关键

来源&#xff1a; I CTA编译&#xff1a;网易智能 nariiy摘要&#xff1a;对于大多数人而言&#xff0c;最昂贵的两个物件是家和汽车。如今&#xff0c;技术将这二者联系在一起&#xff0c;并互为延伸。在不断加速发展的趋势中&#xff0c;智能家居和联网汽车正在融合&#xff…

[问题解决]同时显示多个Notification时PendingIntent的Intent被覆盖?

情况是这样的&#xff0c;使用NotificationManager触发多个Notification: Java代码 private Notification genreNotification(Context context, int icon, String tickerText, String title, String content, Intent intent){ Notification notification new Notifi…

【工业革命】第四次工业革命:自主经济的崛起

来源&#xff1a;产业智能官摘要&#xff1a;数据是新的资源&#xff0c;数据的处理和应用将带动第四次工业革命。随着大数据、云计算、物联网、人工智能、区块链等技术的崛起&#xff0c;很多人都说第四次工业革命即将到来。第四次工业革命到底指的是什么&#xff1f;应该如何…

2019年大数据发展将走向何方

来源&#xff1a;网络大数据近日&#xff0c;包括CCF(中国计算机学会)大数据专家委员会、IDC公司(Internet Data Center 互联网数据中心)和Gartner公司等多家国内外知名信息技术研究机构均发布报告&#xff0c;对2019年乃至未来若干年的大数据产业发展趋势做出预测&#xff0c;…

AI人必看!89页全网最全清华知识图谱报告

来源&#xff1a;智东西摘要&#xff1a;谷歌冲锋&#xff0c;淘宝猛追&#xff0c;这个AI秘密武器强在哪&#xff1f;知识图谱&#xff08;Knowledge Graph&#xff09;是人工智能的重要分支技术&#xff0c;它在2012年由谷歌提出&#xff0c;成为建立大规模知识的杀手锏应用&…

人机融合智能的现状与展望

来源&#xff1a;人机与认知实验室作者&#xff1a;刘伟 苌凯旋摘要&#xff1a;本文对人机融合智能的概念、应用、发展将面临的关键问题以及未来发展的方向进行简要介绍。1 引言1.1 现有人工智能的不足与挑战人工智能&#xff08;AI&#xff09;的概念于1956年的达特蒙斯学院暑…

Unity自带网络功能——NetworkView组件、Serialize、RPC

Unity拥有大量的第三方插件&#xff0c;专门提供了对网络功能的支持。可是&#xff0c;大部分开发人员第一次接触到的还是Unity自带的网络功能&#xff0c;也就是大家常常说到的Unity Networking API。这些API是借助于组件NetworkView发挥作用的&#xff0c;而它能够简化开发人…