• atoi将string类型转换为int类型。
  • 需要注意的点:

1考虑上溢和下溢的情况

2遇到空格需要处理

3设置一个flag用来记录正负号,如果遇到的为“+”,flag=1;如果遇到的为“-”,flag=-1;

4将对应的char类型字符转换为整数,如s[i]-‘0’,如果该值小于0或者大于9,说明为异常值,此时返回;

如果该值为0-9之间,则用result*10+该值来更新result。

  • 完整的C++代码如下:

#include<string>
#include<vector>
#include<iostream>
using namespace std;
int help(string s)
{
    int n = s.size();
    int i = 0;
    int flag = 1;
    int ret=0;
    if (n == 0)
        return 0;
    while (s[i] == ' ') {
        i++;
    }
    if (s[i] == '+') {
        i++;
    } else if (s[i] == '-') {
        i++;
        flag = -1;
    }
    while (i < n) {
        if (s[i]<'0' || s[i]>'9') {
            return ret * flag;
        }
        int digit = s[i] - '0';
        if (flag == 1 && 10.0 * ret + digit > INT_MAX) {
            return  INT_MAX;
        } else if (flag == -1 && -(10.0*ret + digit) < INT_MIN) {
            return INT_MIN;
        } else
            ret = 10 * ret + digit;
        i++;
    }
    return ret*flag;
}
int main()
{
    string s;
    cin >> s;
    int result;
    result = help(s);
    cout << result<<endl;
    system("pause");
    return 0;
}

实现atoi函数(C++实现)相关推荐

  1. 编写实现atoi函数

    题目:给定一个字符串,要求转成整数,不允许使用atoi或者其它类似库函数. 方案:实现这个函数并不难,但是要考虑以下几个问题 1.考虑字符串为空指针的时候            2.考虑字符串为空串 ...

  2. C语言atoi()函数用法

    C语言atoi()函数用法 头文件:#include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为: int atoi (const char * s ...

  3. atoi()函数定义

    原型:int  atoi (const  char  *nptr) 用法:#include  <stdlib.h> 功能:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前 ...

  4. C语言atoi()函数(字符串转整数int类型)(atol()转换为long)

    需包含头文件:C 标准库 - <stdlib.h> 文章目录 描述 声明 参数 返回值 实例 在windows VS上测试 20211206 用atoi转换long,发现溢出了 描述 C ...

  5. linux中atoi函数的实现 值得借鉴,【转】atoi()函数的实现

    atoi()函数的功能:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回( ...

  6. C语言中atoi()函数的用法

    C语言中atoi()函数的用法 一.学习要点: 1.int atoi(const char *str)把参数str所指向的字符串转换为一个整数: 二.代码 #include<stdio.h> ...

  7. Linux下main函数带参数问题和atoi函数详解

    1.main函数带参数 基本格式:main(int argc,char * argv[]) argc参数保存命令行参数的个数,是整形变量 具体用法可有如下代码看下: a1.c: #include &l ...

  8. atoi函数_吊打面试官 | 腾讯经典考点写代码实现atoi函数

    点击蓝字关注我哦 以下是本期干货视频视频后还附有文字版本哦 ▼<腾讯经典考点-写代码实现atoi函数>▼ ps:请在WiFi环境下打开,如果有钱任性请随意 在腾讯面试时,经常会被问到如何用 ...

  9. C语言atoi()函数:将字符串转换成int(整数)和sprintf和memset

    atoi()函数 #include <stdio.h> #include <stdlib.h>int main () {int i;char buffer[256];print ...

  10. C atoi函数

    作用 atoi()函数将数字格式的字符串转换为整数类型.例如,将字符串1253124127转换成数字1253124127. 注意 首要注意 atoi函数可以转化如下这种字符串 1fdafhdjfhka ...

最新文章

  1. R语言使用tryCatch函数调试R代码实战:tryCatch函数运行正常R代码、tryCatch函数运行有错误(error)的R代码示例/tryCatch函数运行有警告(warning)的R代码示例
  2. Hibernate two table same id
  3. FetchType.LAZY和FetchType.EAGER什么区别?(懒加载和急加载的理解)
  4. buu Cipher
  5. java响应事件_Swing中添加事件响应的三种处理方式说明
  6. 在c++中使用gotoxy
  7. matlab不显示变量,Matlab空间面板SAR模型运行时解释变量显示不全
  8. 谈谈C#反射(Reflection)
  9. facebook, twitter,QQ, google +1, linkedin, disqus,gigya 按钮Network (登录)
  10. 机器数与码制——如何在计算机内部存储数字、进行数据运算
  11. Win 10 没有 Hyper-V 解决方案
  12. python之路-基础篇-002
  13. linux运行海康,海康网络摄像机SDK Linux对接
  14. pip下载包的默认路径
  15. 学术论文中的Introduction与Background
  16. using eclipse to write c programe
  17. 《老路用得上的商学课》61-65学习笔记
  18. Ubuntu 16.04下设置开机时自动开启NumLock
  19. python程序设计,猜数游戏编程实践课程实验
  20. Minitab中的一些最常用的功能和任务。

热门文章

  1. vue.js关于循环出来多个input并让每个input后的修改按钮控制其值
  2. jQuery源码分析系列(31) : Ajax deferred实现
  3. Chrome快捷键, Mac 下 Chrome 浏览器 快捷键
  4. SQL Server数据同步的研究(单向/双向)
  5. 快速搭建MongoDB分片集群
  6. oracle 闪回总结
  7. Linux vip地址通信原理,IPv6的组播地址(掌握IPv6通信原理的关键知识点)
  8. golang ide 环境搭建_新手引导 — Golang后端开发环境搭建
  9. jsp页面ajax用法,在jsp中使用jquery的ajax
  10. feign扫描_微服务实战SpringCloud之Feign简介及使用