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…

QT中信号和槽的简单解释

代码见&#xff1a; https://blog.csdn.net/cloud323/article/details/82192241 思想介绍为&#xff1a; 一&#xff0e;信号 当对象的内部状态发生改变&#xff0c;信号就被发射。只有定义了一个信号的类和它的子类才能发射这个信号。 信号的声明是在头文件中进行的&#…

wp8.1 Study11:APP里文件读写和使用XML和Json序列化

一、文件读写 1、基本操作&#xff08;使用FileIO API&#xff09; 这个方法在上一个stduy已经学过&#xff0c;那么贴出来复习下&#xff0c;代码如下&#xff1a; private async void writeTextToLocalStorageFile(string filename, string text){var fold Windows.Storage.…

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

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

C++匿名函数Lambda

参考&#xff1a;https://www.debugself.com/archives/94 C11的新的特性&#xff1a;https://www.debugself.com/archives/100

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

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

Hibernate继承(2)子类属性生成在自己的一张表中,父类的属性一张表

Hibernate继承&#xff08;2&#xff09;子类属性生成在自己的一张表中&#xff0c;父类的属性一张表 <?xml version"1.0"?> <!DOCTYPE hibernate-mapping SYSTEM "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" > <!-- 具体…

QT事件过滤器eventFilter函数

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

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

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

运行yum时出现错误,缺失libsasl2.so.2文件

运行yum时出现错误&#xff0c;缺失libsasl2.so.2文件 [rootlocalhost /]# yum repolist There was a problem importing one of the Python modules required to run yum. The error leading to this problem was:libsasl2.so.2: cannot open shared object file: No such fil…

蜜蜂会算术吗

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

QT中的QTableView+QTableWidget

该类是显示表格数据的&#xff0c;像Excel一样&#xff0c; 参考&#xff1a;https://blog.csdn.net/qq769651718/article/details/79357938 QTableWidget控件参考&#xff1a; https://blog.csdn.net/alan00000/article/details/7951428 //QTableWidget的常用方法 tableWidg…

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

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

mysql 修复表和优化表

REPAIR TABLE table_name 修复表 OPTIMIZE TABLE table_name 优化表转载于:https://www.cnblogs.com/lvdongjie/p/4182162.html

QT的QStackedLayout

QStackedLayout栈式布局管理器管理的所有组件在垂直于屏幕的方向上&#xff0c;每次只显示一个组件界面。 参考&#xff1a;https://www.2cto.com/kf/201605/513676.html https://blog.51cto.com/9291927/1871918

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

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

初探弹出层的实现原理

首先用几句话来描述一下实现过程&#xff0c;好有个思路嘛^^&#xff1a;&#xff08;1&#xff09;先创建一个div层将整个屏幕罩住&#xff08;所谓的遮罩层&#xff09;&#xff0c;可设置该层的属性&#xff0c;例如透明度&#xff08;2&#xff09;在遮罩层内创建div来展示…