实现atoi函数
atoi函数最关键的地方是想好测试用例:
- 输入为空字符串,输出为0;
- 输入字符串大小超过INT_MAX输出INT_MAX;
- 输入字符串大小小于INT_MIN输出INT_MIN;
- 输入字符串中含有不规则字符,中断atoi, 如"01a4" 输出1;
- 输入字符串开头和结尾含有空格,忽略空格,如输入" +01 "输出1;
- 输入字符串开头除空格以外如果是"+"和"-",视为正确输入。
class Solution {
public:
int atoi(const char *str) {
if(strlen(str)==) return ;
double result=;
int j=;
while(str[j]==' ') //忽略字符串首空格
{
j++;
}
int last = strlen(str)-;
int last_space = ;
while(str[last]==' ') //忽略字符串尾空格
{
last--;
last_space++;
}
if(str[j]=='+')
{
for(int i=j+;i<strlen(str)-last_space;i++)
{
if(str[i]>=''&&str[i]<='')
{
result = result* + (str[i]-'');
}
//如果遇到非法字符,终止转换
else
{
break;
}
}
if(result>INT_MAX)
{
return INT_MAX;
}
else
{
return result;
}
}
if(str[j]=='-')
{
for(int i=j+;i<strlen(str)-last_space;i++)
{
if(str[i]>=''&&str[i]<='')
{
result = result* + (str[i]-'');
}
else
{
break;
}
}
if(result*(-) < INT_MIN)
{
return INT_MIN;
}
return result*(-);
}
for(int i=j;i<strlen(str)-last_space;i++)
{
if(str[i]>=''&&str[i]<='')
{
result = result* + (str[i]-'');
}
else
{
break;
}
}
if(result>INT_MAX)
{
return INT_MAX;
}
if(result*(-) < INT_MIN)
{
return INT_MIN;
}
return result;
}
};
实现atoi函数的更多相关文章
- atoi()函数
原型:int atoi (const char *nptr) 用法:#include <stdlib.h> 功能:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前 ...
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
1.int/float to string/array: C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明. ● itoa():将 ...
- 题目1003:A+B ---c_str(),atoi()函数的使用;remove , erase函数的使用
#include<stdio.h> #include<stdlib.h> int sw(char *a){ ,c=; while(a[i]){ ') c=c*+a[i]-'; ...
- atoi()函数的实现
atoi()函数的功能:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回( ...
- C语言itoa()函数和atoi()函数详解(整数转字符)
http://c.biancheng.net/cpp/html/792.html C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串. 以下是用itoa()函数将整 ...
- C语言itoa函数和atoi 函数
C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串.以下是用itoa()函数将整数转 换为字符串的一个例子: # include <stdio.h> ...
- 【C语言】模拟实现atoi函数
atoi(表示 ascii to integer)是把字符串转换成整型数的一个函数. atoi()函数会扫描参数 nptr字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过isspace( ...
- String to Integer (atoi) - 字符串转为整形,atoi 函数(Java )
String to Integer (atoi) Implement atoi to convert a string to an integer. [函数说明]atoi() 函数会扫描 str 字符 ...
- atoi()函数(转载)
atoi()函数 原型:int atoi (const char *nptr) 用法:#include <stdlib.h> 功能:将字符串转换成整型数:atoi()会扫描参数np ...
- 源码实现 --> atoi函数实现
atoi函数实现 atoi()函数的功能是将一个字符串转换为一个整型数值. 例如“12345”,转换之后的数值为12345,“-0123”转换之后为-123. #include <stdio.h ...
随机推荐
- CentOS 访问控制列表(tcp wrappers)
1.TCP Wrappers是一个工作在应用层的安全工具,它只能针对某些具体的应用或者服务起到一定的防护作用.比如说ssh.telnet.FTP等服务的请求,都会先受到TCP Wrappers的拦截. ...
- IntelliJ IDEA2018注册
第一步:0.0.0.0 account.jetbrains.com及0.0.0.0 www.jetbrains.com 添加到hosts文件 第二步:进入 http://idea.lanyus.co ...
- [牛客练习赛29D]禁止动规
description newcoder 你在一个无限长的数轴上,一开始你在原点 本来你只有两种操作:向左dp,以及向右dp 然而由于禁止dp 于是你只能另寻出路 万幸的是,dp之神随机给了你n个变量 ...
- PCA误差
我们知道,PCA是用于对数据做降维的,我们一般用PCA把m维的数据降到k维(k < m). 那么问题来了,k取值多少才合适呢? PCA误差 PCA的原理是,为了将数据从n维降低到k维,需要找到k ...
- ZOJ2314:Reactor Cooling——题解
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1314 题目大意:无源汇上下界网络流,问每个管子走多少流量才能满足所有管子的下界 ...
- Windows系统中Xshell与Linux连接时遇到的问题
前提条件:在Windows系统中已经安装了Xshell,并且安装了虚拟机软件和Linux系统 步骤1.在Linux系统中root用户下,使用ifconfig命令查看虚拟系统Linux的IP地址.如图1 ...
- bzoj1025: [SCOI2009]游戏(DP)
题目大意:将长度为n的排列作为1,2,3,...,n的置换,有可能置换x次之后,序列又回到了1,2,3,...,n,求所有可能的x的个数. 看见这种一脸懵逼的题第一要务当然是简化题意...我们可以发现 ...
- Java 匿名内部类 只能访问final变量的原因
文章来源:http://blog.sina.com.cn/s/blog_4b6f8d150100qni2.html 1)从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方 ...
- Javascript计算世界完全对称日
今天是 2011-11-02 日,微博啊.G+啊什么的都传是世界完全对称日,还说是多少年一遇的.下面写个 JavaScript 小程序,看看是否真的N年一遇.计算范围在公元2000年到3000年. 名 ...
- String类的用法
练习如何创建一个类. package create; public class Newstring { String aa; public Newstring() { // TODO Auto-gen ...