atoi将字符装换为数字
伪代码思路:
第一步:检测输入字符串是否为空字符串;
if(str.empty()) return 0;
第二步:
检索有效输入:
int i=0;
while(str[i]==' '&&str[i]!='\0')
i++;
循环后i所在的位置即为有效字符所在的位置。
if(str[i]=='\0')
{return 0};
第三步:检查数字符号:
if(str[i]=='+')正i++
if(str[i]=='-') 负i++
//开始转换;
int max=ox7fffffff //表示最大的int 32字节符号为为0,表示正数;
int min=ox800000000;//表示下届 负数;
long sum =0;
while( str[i]!='\0')
{
if(str[i]>'0'&&str[i]<'9')
{
sum=sum*10+signal*(str[i]-'0'); //字符数字对应相减,其实对应的是它们的码值相减,差值为对应的数值之差;
}
esle
return sum;
//第五步:时刻检测数字是否溢出:
if (sum > max || sum < min) //溢出处理
return sum > 0 ? max : min;
++i;
}
return sum;
class Solution {
public:
int myAtoi(string str) {
if (str.empty()) //空字串
return 0;
//忽略前缀空格
int i = 0;
while (str[i] != '\0' && str[i] == ' ')
++i;
if (str[i] == '\0')
return 0;
int max = 0x7fffffff;
int min = 0x80000000;
int signal = 1;
//处理+、-号
if (str[i] == '+')
{
signal = 1;
++i;
}
else if (str[i] == '-')
{
signal = -1;
++i;
}
//转换整数
long long sum = 0;
while (str[i] != '\0')
{
if (str[i] >= '0' && str[i] <= '9')
sum = sum * 10 + signal * (str[i] - '0');
else
return sum;
if (sum > max || sum < min) //溢出处理
return sum > 0 ? max : min;
++i;
}
return sum;
}
};
转载于:https://www.cnblogs.com/mmziscoming/p/5751869.html
atoi将字符装换为数字相关推荐
- 输入一个字符,判断它是否为小写字母,如果是,将其装换成大写字母,否则,不转换
输入一个字符,判断它是否为小写字母,如果是,将其装换成大写字母,否则,不转换 大家好,我是萌新,初学者,这是第一次写博文,所以有些紧张,希望大家不要打我~谢谢 ##小写字母转换成大写字母 先说说我的思 ...
- java基础unit02-变量,基本数据类型。类型装换,Scanner用法
回顾: 1.Linux 2.java运行环境 .java,编译.class,JVM加载.class并运行.class WindowsJVM-windows LinuxJVM-----Linux IOS ...
- 数据结构---递归实现十进制装换为任意进制
数据结构-递归实现十进制装换为任意进制 代码: #include <stdio.h> #include <stdlib.h> #include"stack.h&quo ...
- mysql c语言数字转字符串函数_C++_c语言标准库中字符转换函数和数字转换函数,字符转换为数字:
#includest - phpStudy...
c语言标准库中字符转换函数和数字转换函数 字符转换为数字: #include atoi();将字符转换为整型 例:char ch1;int i=atoi(ch1); atol();将字符转化为长整 ...
- atoi函数_C语言字符串、数字转换函数大全!
常用到字符串和数字的转换 想找却发现网上的资料太散 所以搜集整理一下,方便给大家以后再用 atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数) atol(将字符串转换成长整型数) st ...
- C++字符,字符串,数字,小写,大写的相互转化
1.字符串转化为浮点型数字 #include<stdlib.h> atof(*a); //atof里面必须是指针 例如:char b[ ]; char *a=&b; double ...
- C# 将bcp文件装换为csv文件
C# 将bcp文件装换为csv文件 技术选型:C# + VS2015 + DevExpress + Sqlite 源文件:ZIP(xml文件+bcp文件) 前提: XML文件:为集合标签, ...
- java单个字符,字符串转数字
1.单个字符转数字(即ASCLL转换方式) 字符0 ~ 9转数字0 ~ 9 //单个字符转数字,char a ='0';int m = a-'0'; 2.字符串转数字 //字符串转换的三种形式Stri ...
- 字符型常量与数字转换
字符型常量与数字转换 案例一 // atoi class Solution { public:int myAtoi(string str) {int res = 0;int i = 0;int fla ...
最新文章
- 如何成为Android开发高手
- Priority VS Bandwidth
- pageContext.findAttribute()与pageContext.getAttribute()的区别
- signature=ecbb5c28a0561484700bbfeebe84cc52,Corps next in line as bond fees are hit by ECB
- [PHP源码阅读]trim、rtrim、ltrim函数
- CentOS 7 安装 MySQL
- Verilog如何避免Latch
- Github 本周最有趣的 10 款「机器学习」开源项目 | PaperDaily #32
- php微信小程序获取用户信息,微信小程序获取openid及用户信息的方法
- 京东探索研究院 34 篇论文入选 CVPR 2022
- php表格打印输出,PHP输出表格
- android 4实例分析,OpenGL Shader实例分析(4)闪光效果
- 函数无法识别_IF函数初级用法之一
- Android基础控件EditText
- 计算机网页制作保存,不使用任何工具轻松保存网页资源的法子
- 华为精益看板探索之路【PPT+注解】
- 同比 数据模型 环比_同比环比累计
- Eidetic:助你提升记忆力的酷应用
- 共享屏幕,录屏的方法
- 虚拟示波器-开天斧-STC8H8K64U核心功能实验板测试
热门文章
- DevOps实战 —— 如何高效地远程部署?自动化运维利器 Fabric 教程
- WebHook入门教程:快速实现自动化运维,如自动热部署、自动重启服务、自动备份数据库等等
- Oracle Sql语句定时执行
- NPM包管理器跟换国内镜像CNPM
- Hystrix面试 - 基于 timeout 机制为服务接口调用超时提供安全保护
- Android8.1 MTK平台 截屏功能分析
- 镜像资源汇总 -- node依赖包下载缓慢或不成功的解决办法
- 【Java】编写Java程序,完成从键盘输入两个运算数据,计算两数之和并输出结果...
- HTML网站右键禁用F12代码 屏蔽审查元素 防止修改页面代码
- azure考试_我如何通过AZ-900 Microsoft Azure基础考试