剑指offer系列39:把字符串转换成整数
Posted neverland0718
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer系列39:把字符串转换成整数相关的知识,希望对你有一定的参考价值。
主要代码其实很少,主要是对各种情况的判断。在做题的时候一定要考虑到各种情况的非法输入。
1.前面的空格需要跳过
2.判断数字的正负号并记录
3.如果有非法输入例如字母和其他非数字和正负号的字符,退出返回0
4.返回的是一个数字,所以一定要考虑数字的边界问题
5.对于各种情况考虑到之后最好再加一个无条件的输出语句,防止没有考虑到的情况发生
1 class Solution 2 public: 3 int StrToInt(string str) 4 if (str.empty()) 5 return 0; 6 auto t = str.begin(); 7 while (*t == ‘ ‘&&t!=str.end()-1)//排除前面的空格 8 9 t++; 10 11 bool neg = false;//符号判断位,默认为正数 12 if (*t == ‘+‘) 13 14 t++; 15 16 else 17 18 if (*t == ‘-‘) 19 20 t++; 21 neg = true; 22 23 24 25 long long int val = 0; 26 for (; t != str.end(); t++) 27 28 if (*t >= ‘0‘&&*t <= ‘9‘)//这里是将字符串转换为数字的基础操作,记住 29 30 val *= 10; 31 val += *t-‘0‘; 32 if ((neg&&val < INT_MIN) || (!neg&&val > INT_MAX))//判断数字是否越界 33 34 return 0; 35 36 37 else 38 39 return 0; 40 41 42 if (t != str.end()) 43 return 0; 44 if (neg) 45 return -val; 46 else 47 return val; 48 49 ;
以上是关于剑指offer系列39:把字符串转换成整数的主要内容,如果未能解决你的问题,请参考以下文章