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