讲述自己项目经验的基本框架:START
正确解体思路:
- 字符串为空串或空指针.
- 字符串含有非0到9的字符.
- 特别注意字符串转换到int值,要考虑溢出的问题,正整数的最大值是0x7FFFFFFF,负数的最小值是0x80000000.
enum Status {kValid = 0, kInvalid}; int g_nStatus = kValid; /////////////////////////////////////////////////////////////////////// // Convert a string into an integer /////////////////////////////////////////////////////////////////////// int StrToInt(const char* str) { g_nStatus = kInvalid; long long num = 0; if(str != NULL)//至少保证字符串不为空 { const char* digit = str;//用了一下中间变量,保存原始字符串,防止被破坏 // the first char in the string maybe '+' or '-' bool minus = false; if(*digit == '+')//通过第一个字符判断是正是负 digit ++; else if(*digit == '-') { digit ++; minus = true; } // the remaining chars in the string while(*digit != '\0')//字符串结束标志 { if(*digit >= '0' && *digit <= '9') { num = num * 10 + (*digit - '0'); // overflow if(num > std::numeric_limits::max())//整数溢出的情况 { num = 0; break; } digit ++; } // if the char is not a digit, invalid input else { num = 0; break; } } if(*digit == '\0') { g_nStatus = kValid; if(minus) num = 0 - num;//转化为负数的方式 } } return static_cast(num); }
代码来自博客:http://blog.sina.com.cn/s/blog_74a459380101ennz.html
此博客 :https://blog.csdn.net/u010412719/article/details/48108533 也同样进行了分析
应聘者提问环节
1. 问关于自己职位相关的
2. 技术面试不问薪水
3. 可以问公司项目的问题