做网站需要先搞目录么,自己写的html放入wordpress,uemo网站源码,建网站大概多少费用看到很多面试书和博客都提到编写atoi函数#xff0c;在很多面试中面试官都会要求应聘者当场写出atoi函数的实现代码#xff0c;但基本很少人能写的完全正确#xff0c;倒不是这道题有多么高深的算法#xff0c;有多么复杂的数据结构#xff0c;只因为这道题要考虑的情况比… 看到很多面试书和博客都提到编写atoi函数在很多面试中面试官都会要求应聘者当场写出atoi函数的实现代码但基本很少人能写的完全正确倒不是这道题有多么高深的算法有多么复杂的数据结构只因为这道题要考虑的情况比较多大部分应聘者都没能把所有情况都考虑到能很好的考察应聘者的编程基本功和思考问题全面性等能力。一看到这道题目我的第一反应是这么简单啊不就是把一个字符串转化成整数吗然后速度写下了实现代码然后测试了下貌似结果也正确然后再看了看书和博客上的实现发现自己很多种情况都没考虑进去自己测试的也只是自己考虑的一两种情况。 这道题目要考虑的情况还真是很多比如如果传的字符串指针为NULL如果传的字符串为空如果传的字符串中包含非法的字符如果传的字符串中包含-符号如果字符串代表的整数超过了整数能表示的范围...看了这么多情况真心感觉实现这个函数还真不是件简单的事下面贴出我自己重新写的atoi函数。 1 int myError 0;2 3 int atoi(const char *str)4 {5 bool is_f false;6 long long result 0;7 8 myError 0;9 if (str NULL || *str 0)
10 {
11 myError -1;
12 return 0;
13 }
14 if (*str || *str -)
15 {
16 if (*str -)
17 is_f true;
18 str;
19 if (*str 0)
20 {
21 myError -1;
22 return 0;
23 }
24 }
25 while (*str)
26 {
27 if (!(*str 0 *str 9) ||
28 (!is_f result 0x7fffffff)
29 || (is_f result 0x80000000))
30 {
31 myError -1;
32 return 0;
33 }
34 result result * 10 (*str - 0);
35 str;
36 }
37 if((!is_f result 0x7fffffff)
38 || (is_f result 0x80000000))
39 {
40 myError -1;
41 return 0;
42 }
43 return is_f ? -((int)result) : (int)result;
44 } 上面代码我将出错的代码保存在myError全局变量中因为如果用返回值来表示出错这个会与字符串代表的整数值产生混淆。上面的代码自己测试了下貌似对应上面写得各种情况都正确不过写得代码质量不高贴出来仅供分享也许还有没有考虑的情况。