字符串转换为整数”123“->123

题目描述:
输入一个由数字组成的字符串,把它转换成整数并输出。例如:输入字符串"123",输出整数123。
给定函数原型 int StrToInt(const char *str) ,实现字符串转换成整数的功能,不能使用库函数atoi。
题目分析:
将字符串正确转化为整数步骤
①当扫描第一个字符‘1’时候,由于为第一位,所以直接得到数字1
②当扫描第二个字符‘2’时候,1*10+2 = 12
③继续扫描字符‘3’时候,12*10+3=123
所以就是n = n * 10 + c;
易错处:
1)不能为空指针,否则访问空指针时程序会崩溃if(str == NULL)return 0;
2)要考虑正负符号加入sign标记
3)要考虑非法字符,例如空格之类的while(isspace(*str)) ++str 还需要检测当为数字时,我们才开始转化
4)整型的溢出,如果输入一个很长很长的字符串,可能照成整型的溢出方法一、可以将n定义为long long型;方法二、利用定义MAX_INT 和 MIN_INT(对0右移取反),通过比较n和MAX_INT/10的大小
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
参考代码:

int StrToInt(const char *str)
{//对0取反再右移一位static const int MAX_INT = (int)((unsigned)~0 >> 1);static const int MIN_INT = -(int)((unsigned)~0 >> 1)-1;unsigned int n = 0;//判断是否为空if(str == NULL)return 0;//处理空格while(isspace(*str))++str;//处理正负int sign = 1;if(*str == '+' || *str == '-'){if(*str == '-')sign = -1;++str;}//确定数字后才开始转化while(isdigit(*str)){//处理溢出int c = *str - '0';if(sign > 0 && (n > MAX_INT/10 || (n == MAX_INT/10 && c > MAX_INT%10))){n = MAX_INT;break;}else if(sign < 0 && (n > (unsigned)MIN_INT/10 || (n == (unsigned)MIN_INT/10 && c > (unsigned)MIN_INT%10))){N = MIN_INT;break;}n = n * 10 + c;++str;}return sign > 0 ? n : -n;
}

字符串转换为整数”123“-123相关推荐

  1. 【剑指offer-Java版】49把字符串转换为整数

    字符串转换为整数 : atoi 可能的输入: 1 带符号数 2 无符号数 3 零 4 空指针 5 超出表示范围 – 暂时仅仅是直接退出且设置最小 – 可以考虑此时抛个异常 6 非法输入,比如并不是一个 ...

  2. python 把带小数的浮点型字符串转换为整数的解决方案

    python 把带小数的浮点型字符串转换为整数的解决方案 参考文章: (1)python 把带小数的浮点型字符串转换为整数的解决方案 (2)https://www.cnblogs.com/mlgjb/ ...

  3. 整数转化成字符串; 字符串转换为整数

    整数转化成字符串: 字符串转换为整数 /*整数转化成字符串*/ char *IntToStr(int num, char str[]) {int i = 0, j = 0;char temp[100] ...

  4. 【TypeScript】parseInt 函数将字符串转换为整数

    parseInt 函数 字符串转换为整数 parseInt() 函数解析一个字符串返回一个整数. 下面是一个示例: const a = parseInt("007"); 上述函数将 ...

  5. C语言字符串转换为整数(附完整源码)

    C语言字符串转换为整数 C语言字符串转换为整数完整源码 C语言字符串转换为整数完整源码 #include <assert.h> #include <stdio.h> #incl ...

  6. C语言试题三十二之编写函数function,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。

    1. 题目 请编写函数function,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数). 2 .温馨提示 C试题汇总里可用于计算机二级C语言笔试.机试.研究生复 ...

  7. Scala程序将字符串转换为整数

    In Scala, there is a huge library to support different operations on a string. One such operation is ...

  8. python整数转换字符串_Python | 将字符串转换为整数列表

    python整数转换字符串 Given a string with digits and we have to convert the string to its equivalent list of ...

  9. 24.请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。

    24.请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数). 例如,若输入字符串"-1234",则函数把它转换为整数值- ...

最新文章

  1. Python控制流---while循环
  2. 自学python网站推荐-推荐自学python必入的神仙网站
  3. My97 DatePicker获取自定义日期的前一天
  4. 优化JS代码的34种方法(上)
  5. android 微信两个服务的,微信上线两个新功能
  6. 消息队列终极解决方案——Stream(下)
  7. 遗留问题,排雷会炸,不排也会炸!
  8. JVM面试1 :谈谈你对Java的理解
  9. Sublime Text3的插件管理Package Control安装
  10. 【目标跟踪】基于matlab红外图像弱小目标检测与跟踪【含Matlab源码 374期】
  11. RBF神经网络及其应用【神经网络】
  12. Latex特殊符号大全(高清)
  13. 分簇路由算法 LEACH算法
  14. 2019,我们被“黑”科技薅过的羊毛?
  15. 某妹游戏登录加密(webpack)
  16. Netty-入门篇(核心组件介绍实战)
  17. html中3d哪个方向是x轴,详解用CSS绘制3D旋转立方体
  18. STM32+ADS1115使用说明文档
  19. 如何把网页传到云服务器,将网页传到云服务器
  20. 力扣 23. 合并K个升序链表

热门文章

  1. SQL入门学习(3)子查询
  2. python年月日时分秒
  3. 星座时代:一家企业的自白
  4. C++ 单冒号: 和双冒号:: 的作用
  5. 七年级计算机教学质量分析,七年级年级组质量分析会
  6. 互联网产品的帮助中心页面制作方法?
  7. NOI2019退役记
  8. 读书笔记:《小狗钱钱1+2》
  9. 别用 VMware 了,这款虚拟机简单、轻量、好用还免费...
  10. 什么是L1行情接口?