atoi函数实现

  atoi()函数的功能是将一个字符串转换为一个整型数值。

例如“12345”,转换之后的数值为12345,“-0123”转换之后为-123。

#include <stdio.h>
int my_atoi(const char *str)
{
int total = ; //保存转换后的数值
int isNegative = ; //记录字符串中是否有负号
int length = ; //记录字符串的长度
const char *p = str;
char temp = ''; if(NULL == p) //判断指针的合法性
{
printf("error");
return -;
} while(*p++!='\0') //计算字符串的长度
{
length++;
} p = str; //重新指向字符串的首地址 if(*p == '-') //判断是否有负号
{
isNegative = ;
} for(int i = ;i < length;i++)
{
temp = *p++;
if(temp > ''||temp < '') //滤除非数字字符
{
continue;
}
if(total != ||temp != '') //滤除字符串开始的0字符
{
temp -= '';
total = total* + temp;
}
} if(isNegative) //如果字符串中有负号,将数值取反
return ( - total);
else
return total; //返回转换后的数值
} int main(int argv,char *argc[])
{
printf("%d\n",my_atoi("-0123"));
return ;
}

执行结果:-123

最新文章

  1. 使用Mulesoft建立webservice, simple方式,POJO
  2. MVC 微信扫码支付
  3. zabbix解决中文乱码问题(没有测试成功)
  4. thinkphp 3.2视图里添加URL参数 实例
  5. Java内存泄露的理解与解决
  6. SSH使用教程( Bitvise Tunnelier+Chrome+Proxy Switchy)
  7. EF实体框架之CodeFirst五
  8. 如何用 React Native 创建一个iOS APP?
  9. html5 新增语义标签
  10. 记一次Java的内存泄露分析
  11. 从 MVC 到前后端分离
  12. msql分区
  13. Hello 2019
  14. spring 自己创建配置类
  15. curl命令转换成php源码
  16. 二进制安装MySQL数据库
  17. 罗马数字转整数的golang实现
  18. 在win10开启HyperV(Pro以上版本)安装的Docker,如何远程管理其他机器(Linux或者Win)的docker容器
  19. spring使用@Autowired为抽象父类注入依赖
  20. NDK环境搭建方法2

热门文章

  1. 【php】windows安装PHP5.5+Apache2.4
  2. R语言自动化报告格式——knitr
  3. 图像处理------K-Means算法演示
  4. 错误代码: 1242 Subquery returns more than 1 row
  5. Flex中配置FusionCharts
  6. TI AM335X处理器介绍
  7. freemarker自定义标签报错(四)
  8. linux下mount/unmount命令
  9. HTML5之Canvas画圆形
  10. Java中的List转换成JSON报错(五)